Tem 18 2010

Lighttpd Log Dosyalarını Döndürme

Category: FreeBSD,Gezegen,LighttpdBayram Karagöz @ 11:02

WEB Serverınıza bağlanan ve işlem yapan kullanıcılarınızın sayısı gittikçe artıyor. Bir httpd-access.log dosyasını tail -f komutu ile kontrol edeyim dediniz. O da ne? Log dosyası o kadar hızlı akıyorki hiçbir şey göremiyorsunuz. Bu durum bu dosyanın yakın zamanda şişeceğini ve size disk kullanım alanı problemi olarak geri döneceğini unutmayın. O zaman öyle birşey yapalım ki hem dosya günlük olarak yedeklensin sıkıştırılıp boyutu küçültülsün ve istediğimiz sayıda log dosyasını saklayabilelim. Neyseki FreeBSD 8.0 müthiş bir tool olan newsyslog ile bize bu imkanı veriyor. newsyslog iyiki varsın :) newsyslog ile önceden hazırlamış olduğum bu makaleyi inceleyerek hakkında detaylı bilgi sahibi olabilirsiniz.

Neyse lafı fazla uzatmadan işe başlayalım. öyle bir ortam hazırlayalım ki;

/var/log/lighttpd.access.log ve /var/log/lighttpd.error.log dosyaları hergün gece yarısı saat 00:00 da yedeklensin, bz2 formatında sıkıştırılsın, geriye dönük 7 günlük dosyalara ulaşabilelim, ondan öncekiler silinsin. İşte newsyslog.conf dosyasına bu konfigürasyon ile alakalı ekleyeceğimiz satırlar;


/var/log/lighttpd.access.log   www:www         644   7   *    @T00     JC     /var/run/lighttpd.pid
/var/log/lighttpd.error.log    www:www         644   7   *    @T00     JC     /var/run/lighttpd.pid

sütunların açıklaması;

/var/log/lighttpd.access.log ————–> dosyanın yeri

www:www —————————————-> kullanıcı ve grup hakları

644 ————————————————–> dosya erişim hakları(rw-r–r–)

7 ——————————————————> tutulacak yedek adedi

* ——————————————————> boyut(zamana göre yedekleme yaptığımız için boyut önemli değil)

@T00 ————————————————> yedekleme zamanı (00:00 da )

JC —————————————————–> log dosyası yoksa oluştur ve yedeklenecek dosyayı bzip2 formatında sıkıştır.

/var/run/lighttpd.pid —————————–> web serverın çalıştığı pid nin yeri (isterseniz rotation işleminden sonra programa signal gönderebilirsiniz.)

newsyslog u restart ettikten sonra işlemimiz tamamlanmış ve kullanıma hazır hale gelmiştir.


# /etc/rc.d/newsyslog restart
VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
  • Share/Bookmark
PDF Download    Makaleyi PDF formatında gönder

Etiketler: , , , ,


Tem 17 2010

WEB Server Performansını Nasıl Arttırırım? -3

Category: Apache,FreeBSD,Gezegen,LighttpdBayram Karagöz @ 01:20

Yazımıza 3. kısım ile devam ediyorum. Bu kısımda sizlere performans ile alakalı anlatacaklarım altta sıralanmıştır. Tüm listeye  buradan ulaşabilirsiniz.

3- İşletim Sistemi Performans Arttırımı

4- WEB Server Performans Arttırımı

a) PHP Performans Arttırımı

b) Apache Performans Arttırımı

c) Lighttpd, NginX ve Cherokee Performans Arttırımı

3- İşletim Sistemi Performans Arttırımı

  • Grafiksel arayüzü olmadan kurulabilmesi, lisans maliyetinin olmaması nedeniyle Linux kullanmanız tavsiye edilir. Bunun yanında Unix bazlı sistemler(favorim tabiiki FreeBSD), Windows ve MAC OS X kullanabilirsiniz. Eğer çok işlemcili bir servera sahipseniz, SMP kullanımı için Solaris te kullanabilirsiniz.
  • İşletim sistemlerinin kendi optimizasyonlarını inceleyerek bunlar üzerinde gelişme kaydediniz.
    • Linux için buradan yararlanabilirsiniz.
    • Linux hdparm komutu ile çoklu sektore ve DMA ye okuma/yazma işlemini aktif edebilirsiniz. Ör: hdparm -m16 -d1
    • Diskleri async ve noatime seçenekleriyle birlikte mount ediniz.

4- WeB Server Performans Arttırımı

  • Firefox ve firebug extension unu kurarak her sayfadaki componentlerin açılma sürelerini incelemiş olursunuz. Bununla birlikte  Yslow extension ile sitenizin yahoo nun hızlı bir web sitesi için 14 kurala (video) uyup uymadığını veya ne kadar uyduğunu verdiği puanlar ile görebilirsiniz.

a) PHP Performans Arttırımı

  • CPU yükünü hafifletmek amacıyla PHP accelerator (PHP hızlandırıcıları) kullanmanız şiddetle tavsiye edilir. APC, PHPA, Xcache ve eAccelerator PHP hızlandırıcılara örnek olarak verilebilir. Bu hızlandırıcıları seçerken seçtiğiniz programın kullandığınız PHP versiyonu ile düzgün çalışabildiğine emin olun.
  • Cachelenmiş PHP sayfalarını TMPFS dosya sistemine koyabilirsiniz. Böylelikle okuma/yazma işlemlerinde performans artışı sağlarsınız. Fakat server kapanmalarında, restart veya web server restart durumlarında bu cachelenmiş dosyaların silinebileceğini unutmamak gereklidir. Dolayısıyla web servisini restart etmeden önce cachelenmiş dosyanın içeriğini kopyalayıp restart ettikten sonra tekrar geri kopyalama yapın.
  • Apache/IIS ISAPI module yüklendiğinde PHP nin performansı CGI ya göre daha iyi olur.
  • php.ini dosyasındaki memory_limit miktarını kontrol edin. PHP 5.2.1 de bu değer default olarak 128M atanmıştır. İhtiyacınıza göre bu değeri düşürün.

Nasıl Yüklenilir?

b) Apache Performans Arttırımı

Burada yapacağınız iyileştirmeler genel olarak httpd.conf dosyasında yapacağınız değişikliklerdir.

  • Eğer apache serverı windows üzerinde kullanıyorsanız,  Apache Lounge taki bilgilerden yararlanarak resmi bir apache server indirmeye göre performans ve stabilite  iyileştirmelerini yapabilirsiniz. Fakat şunuda göz önünde bulundurmak gerekiyor ki bu kurulum resmi olmayan bir kurulum olacağından hiçbir zaman resmi kurulum ile karşılaştırılamaz.
  • MaxClients değişkenini aşağıdaki formule göre ayarlayın. Bu değişken apachenin eşzamanlı olarak yapılan max. kaç isteğe cevap verebileceğinin sayısıdır. Bu değişkenı kullanıma elverişli olan RAM miktarının %80 ini yedek olarak kullanmak üzere ayırabilirsiniz.
MaxClients = Total available memory * 80% / Max memory usage of apache process
  • Apache prosesinin memory kullanma miktarı yaklaşık 10MB civarındadır. Bu yüzden pratik olarak elverişli RAM’ı 10MB lık parçalara bölerek MaxClients değerini elde edebiliriz. Apache prosesinin max. Memory kullanım miktarını öğrenebilmek için aşağıdaki komutu komut satırına yazabilirsiniz;
#ps -ylC httpd --sort:rss

Maxclients değerini 256 nın da üzerine çıkarmanız gerekiyorsa, ServerLimit değerini de değiştirmeniz gerekir.

UYARI: Maxclients değerini elverişli RAM in de üzerinde olacak şekilde ayarlarsanız swap alanı kullanılmaya başlayacağından performansta önemli düşüşler yaşarsınız.

  • Apachenin kullanacağı modül sayısını bilerek tam olarak ihtiyaca uygun olan modülleri aktif edin. Kullanmadığınız modüller aktif olarak kaldığında RAM in belirli bir miktarını kullanacak bu da performans düşüklüğüne neden olacaktır.
  • En son Apache versiyonunu kullanın. Örneğin Apache 2 versiyonu memorynin düzgün ve az kullanması üzerine geliştirilmiş özelliklere sahiptir.
  • Unix/Linux sistemlerde MaxRequestsPerChild sayısını 20-30 arasına düşürmeye çalışın.
  • Yoğun yüke sahip iseniz KeepAlive Off tanımlayarak bu KeepAlive işlemini durdurun(sitenizde link veya upload edilmiş resim dosyası bulunmuyorsa bu işlemi yapabilirsiniz) veya KeepAliveTimeout değerini 2 ile 5 arasında ayarlayın. Bu değer default olarak 15 sn ayarlıdır. Değerin fazla olması idle da bekleyen proses sayısının artacağı manasına gelir. Bu değerin size en uygun olanını seçmek için kullanıcılarınızın yaklaşık olarak sayfalarınızın gelmesi için ne kadar beklediklerini öğrenebilir veya test edebilirsiniz. Değeri değiştirdikten sonra CPU kullanımını gözleyerek çalışan httpd proseslerinde yükselme olup olmadığını kontrol edin.
  • Bir önceki performans iyileştirmesiyle alakalı önemli bir hususu belirtmek isterim. Eğer sitenizde SSL aktif edilmiş ise ve apache kullanıyorsanız KeepAlive Timeout değerini en az 60 sn yapın. Çünkü Internet Explorer da bununla alakalı bir problem mevcut(Şimdi düzeltildimi bilemiyorum).
  • KeepAlive Off değerini kapatmak yerine alternatif olarak bu değeri ON yaparak ve web server önüne HTML dosyalarının resimleriyle beraber cache lenmesini sağlayacak bir Reverse Proxy Server koyarak performans arttırımı yapabilirsiniz.
  • .htaccess dosyası kullanmıyorsanız AllowOverride parametresini None yaparak .htaccess kontrolünü engelleyin.
  • DirectoryIndex değerini doğru bir şekilde ayarlayarak web serverın içerik-araştırması (content-negotiation) yaparak zaman kaybetmesini engelleyebilirsiniz. Aşağıda bunun için bir örnek görülmektedir.
DirectoryIndex index.php index.html index.htm
  • Server üzerinde geliştirme yapmıyorsanız ExtendedStatus Off ve mod_info ile mod_status modüllerini disable edin.
  • HostnameLookups Off yaparak DNS sorgulaması gecikmelerini önleyebilirsiniz. Default olarak bu şekildedir.
  • TimeOut  değerini 30 ile 60 sn arasında ayarlayın.
  • Options yönergesini klasör taramasını önleyecek şekilde ayarlayın. Bu sayede disk I/O miktarını düşürmüş olursunuz. Aşağıda örnek konfigürasyon görülmektedir.
Options -Indexes FollowSymLinks
  • Cacheleme – web server performansı için hayati önem taşıyan durumdur cacheleme. Bir sayfayı kullanıcıların her girişinde tekrar tekrar açıp resimleri, flashları getirmeye çalışması server için büyük bir yüktür. Bu nedenle sürekli olarak değişmeyen öğelerin (resim olabilir, flash olabilir) cachelenmesi sayfanın kısa sürede gelmesi için çok önemlidir.

Cacheleme OS ye göre değişebilir. Fakat temel olarak 2 adımda incelenir.

  1. mode_expires ı kurun ve aktif edin – dökümantasyonlardan ve man sayfalarından yararlanabilirsiniz.
  2. Virtual server tanımlamasında root dizinin <directory> kısmına aşağıdaki kod parçasını ekleyin.(.htacces dosyasına da AllowOverride parametresini ON olarak set ettikten sonra ekleyebilirsiniz .)

<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 1 seconds"
 ExpiresByType text/html "access plus 1 seconds"
 ExpiresByType image/gif "access plus 1 week"
 ExpiresByType image/jpeg "access plus 1 week"
 ExpiresByType image/png "access plus 1 week"
 ExpiresByType text/css "access plus 1 week"
 ExpiresByType text/javascript "access plus 1 week"
 ExpiresByType application/x-javascript "access plus 1 week"
 ExpiresByType text/xml "access plus 1 seconds"
 </IfModule>

Yukarıdaki ifade HTML ve XML dosyaları haric dinamik olarak değişen tüm dosyaları cachelemektedir. Cache zamanını da resimlerinizin değişme süresine göre ayarlayabilirsiniz.

Ayrıntılı bilgi için www.metaskills.net adresini inceleyebilirsiniz.

c) Lighttpd, NginX ve Cherokee Performans Arttırımı

Web server performansını lighttpd, nginx or cherokee gibi hafif web server programları kullanarak ve PHP ile FASTCGI-mode ile kombine ederek arttırabilirsiniz.

Lighttpd web server uygulaması tamamen yüksek miktarlarda yüke sahip serverların memory ve disk I/O kullanımlarının en düşük ve en iyi düzeyde kullanılması için tasarlanmıştır.

Memory ve disk kullanımları sınırlı seviyede olan sistemler için kullanılması gayet uygundur.

Alternatif olarak lighttpd and nginx web uygulamaları load balancer (yük dengeleyici) ve/veya reverse proxy olarak kullanılarak yük dağıtım işlevi görebilirler. Bu programlar yüksek trafiğe sahip binlerce serverda denenmiş ve basit konfigürasyonlarla başarılı bir şekilde kullanılmaktadır.

KAYNAKLAR;

http://blog.digitalstruct.com/2008/01/31/performance-tuning-overview/

http://blog.stuartherbert.com/php/2008/01/31/more-about-performance-tuning/

http://httpd.apache.org/docs/2.0/misc/perf-tuning.html#page-header

http://docs.moodle.org/en/Performance

http://docs.moodle.org/en/lighttpd

http://www.devside.net/articles/apache-performance-tuning

http://linuxbox.co.uk/vbulletin_performance_tuning.php

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
  • Share/Bookmark
PDF Download    Makaleyi PDF formatında gönder

Etiketler: , , , , , , , ,


Tem 15 2010

WEB Server Performansını Nasıl Arttırırım? -2

Category: Apache,FreeBSD,Gezegen,LighttpdBayram Karagöz @ 23:34

WEB performans arttırımı ile alakalı başlamış olduğum yazıma 2. kısımla devam ediyorum. Bu kısımda sizlere anlatacağım konular altta belirtilmiştir. Performans ile alakalı bahsedeceğim tüm kısımların listesine buradan ulaşabilirsiniz.

1- Giriş

2- Donanım Performans Arttırımı

Sitenize aynı anda giren kişi sayısı haddinden fazla ise sizin de web sitenizde performans arttırımı yapmanızın zamanı gelmiş demektir. Bununla birlikte sitenizde fazla kişi olmamasına rağmen sitenizin performansını arttırarak hem kullanıcıların isteklerini daha hızlı gerçekleştirebilmelerini sağlamış olursunuz hem de ileri bir zamanda sitenize girecek kişi sayısının artmasına karşı önleminizi şimdiden almış olursunuz.

Ölçüm ortamının hazırlanması

Optimizasyonlara başlamadan önce performans arttırımı yapılacak sistemin mevcut durumunu ölçmeliyiz ki yaptığımız performans arttırımından sonra karşılaştırma yapma imkanımız olsun. Bunun için Linux kullanıyor isek LBS i , Windows kullanıyorsak Performans Monitör ü kullanabiliriz.

Performans arttırımındaki en temel amaç RAM i (cacheleme için) olabildiğince fazla kullanma, disk bazlı aktivitelerin minimuma indirilmesidir. Sistemlerde swap alanının olabildiğince kullanılmaması bir başka önemli husustur. Eğer sisteminiz swap alanını kullanmaya başlamış ise bu sizin daha fazla RAM e ihtiyacınız olduğunu göstermektedir.

Optimizasyon yapılacak sistemlerde optimizasyon sırası genelde şu sırada olmalıdır;

  1. Daha fazla RAM
  2. Daha hızlı diskler, RAID konfigürasyonu doğru yapılmış
  3. Daha hızlı CPU

Ölçeklenirlik (Scalability)

Büyük yüke sahip siteler genellikle web server ve database server ı fiziksel olarak ayrı makineler üzerinde çalıştırırlar. Buna rağmen az yüke sahip sitelerde böyle bir şeye gerek yoktur. Bunun yanında load-balance uygulamasıyla bir sitedeki web server sayısı da arttırılabilir. Bu tip durumlarda farklı web serverların aynı database ve file servera bağlanması gerekebilir. Bu tip çalışma şekline clustering diyoruz. Aynı çalışma ihtiyaca göre database server tarafında da yapılabilmektedir.

Donanım Performans Arttırımı

NOT: Optimizasyon ile alakalıa yapabileceğiniz en hızlı ve en verimli gelişme web serverınızdak RAM miktarını olabildiğince arttırmaktır. RAM miktarınız arttırarak swap alanının kullanımını engelleyerek diske erişimleri azaltacak daha fazla kullanıcının işlem yapmasını sağlayacaksınız.

  • Yüksek işlemci kapasitesine sahip olmak iyi bir performans arttırım kuralıdır. Örneğin son zamanlarda sıklıkla kullanılan dual veya quad core işlemcilerin kalitesi gayet yüksek düzeydedir.
  • Eğer maddi imkanlarınız yeterli düzeyde ise SATA diskler yerine  SCSI diskleri tercih edin. SATA diskler CPU kullanımının artmasına neden olur. SCSI disklerde entegre işlemciler bulunduğu için böyle bir durum söz konusu değildir. Eğer SATA disklere sahip iseniz, anakartınızın ve diğer driver larınızın NCQ (Native Command Queuing) özelliğini desteklemesi gerektiğini kontrol edin.
  • Disklerinizin dönüş hızları ne kadar fazla ise database verilerinize o kadar hızlı ulaşabilirsiniz. Bu nedenler RPM miktarları fazla olan diskleri tercih edin. Ör : 15000RPM
  • SWAP alanını doğru belirleyin. Genel tavsiye olarak bu alanın RAM miktarının 4 katı olması gerekir.
  • Disklerinizi uygun RAID konfigürasyonu ile birlikte kullanın.
    • Donanımsal RAID controller kullanın.
    • RAID 10 kullanımı tercih edin. NOT: Web server ve database server ın mirror olmayan disklerde olmasına dikkat edin.
  • Gigabit ethernet kartı kullanın. Özellikle web server ve database server ın ayrı hostlarda olması durumunda bu durum daha önemlidir.
  • Network kartının ayarlarını kontrol edin. Kart üzerindeki buffer kullanımı miktarını, giriş/çıkış descriptorlarını arttırarak ve kart üzerinde off-loading TCP checksum hesaplama işlemini aktif ederek (bu hesaplamayı CPU yaptırmadan) ciddi performans kazanımı elde edebilirsiniz.
  • 300 kullanıcılı sistemde yapılan stres testinin buradan bir inceleyin.
  • Aynı sistemin network trafik miktarını ve server yükünü buradan bir inceleyin.
  • Burada yapılmış bir uygulama görülmektedir. Bir inceleyin derim.
  • SFSU üniversitesinde yapılmış bir prezentasyon bulunmaktadır. Burayı da bir incelemenizi tavsiye ederim.

KAYNAKLAR;

http://blog.digitalstruct.com/2008/01/31/performance-tuning-overview/

http://blog.stuartherbert.com/php/2008/01/31/more-about-performance-tuning/

http://httpd.apache.org/docs/2.0/misc/perf-tuning.html#page-header

http://docs.moodle.org/en/Performance

http://docs.moodle.org/en/lighttpd

http://www.devside.net/articles/apache-performance-tuning

http://linuxbox.co.uk/vbulletin_performance_tuning.php

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
  • Share/Bookmark
PDF Printer    Makaleyi PDF formatında gönder

Etiketler: , ,


Tem 14 2010

WEB Server Performansını Nasıl Arttırırım? -1

Category: Apache,FreeBSD,Genel,Gezegen,Lighttpd,Linux,PostgreSQLBayram Karagöz @ 13:44

Geçenlerde yapmış olduğumuz bir kurulum sonrasında performans arttırımı konularında araştırmalara başladım. Çünkü elimizde bir web sitesi vardı ve aylık web trafiği yaklaşık olarak toplam 3.5 TB, günlük giren çıkan kullanıcı sayısı ortalama 350.000 ler seviyesindeydi ve artık sistem zorlanmaya, sayfaları geç gelmeye başlamıştı. Sisteme bağlanıp cpu ve ram kullanım miktarlarını incelediğimde artık sistemin bu yükü taşımakta zorlandığı ve yeni bir sistemin kurulması gerektiğinin veya en azından donanım özelliklerinin arttırılması gerektiğinin farkına vardım.

Açıkçası sistemi migration işlemine tabi tutmadan önce yükünün ne kadar olduğunu bilemiyorduk. Çünkü bunu gösteren herhangi bir program yüklenmiş değildi. Migrasyondan sonra rrdtool ile trafik miktarını incelediğimde sistemin hiç te azımsanacak seviyede olmadığını anladım. Bu grafikleri sizlerle paylaşmak istiyorum. Grafiklerden elde edilen verilere göre sistemin ortalama trafik miktarı 3.5 Mbitler seviyesinde ve saniyede web arayüzünden yapılan istek sayısı ortalama 200 ler civarındaydı.  Ayrıca serverın yüküyle alakalı sizlerinde yorumlarını almak isterim.

web serverın awstat istatistiklerinden bir kesit;

İşte bu serverı migrasyon işlemi sonrasında Windows tan FreeBSD ye taşıdık. WEB server olarak Lighttpd ve Database server olarak ta PostgreSQL kullandık. Operasyonlar sırasında yapmış olduğum araştırmalardan edindiğim tecrübeleri burada sizlerle paylaşmak istiyorum.

Sistem tabiiki sadece kurulum yapmakla kalmadı. Bununla birlikte birtakım iyileştirmeler de yapmamız gerekti. Bu iyileştirmeleri anabaşlıklar halinde altta belirtip her anabaşlığı bir makale konusu olarak sizlere anlatmaya çalışacağım. Makalelerin çoğunluğu araştırmalardan elde edilen verilerin Türkçeye çevrilmiş halidir. Bu yüzden bazı ifadeleri tam olarak anlamayabilir veya tam çevirememiş olabilirim. Fakat anlamadığınız ifadeleri belirtirseniz yardımcı olmaya çalışırım.

Performans İyileştirme Aşamaları;

1- Giriş

2- Donanım Performans Arttırımı

3- İşletim Sistemi Performans Arttırımı

4- WEB Server Performans Arttırımı

a) PHP Performans Arttırımı

b) Apache Performans Arttırımı

c) Lighttpd, NginX ve Cherokee Performans Arttırımı

5- Database Performans Arttırımı

a) MySQL Performans Arttırımı

b) PostgreSQL Performans Arttırımı

Yukarıda belirtmiş olduğum başlıkları hergün sizlerle paylaşmaya çalışacağım. Umarım hepimize faydalı olur. Bu operasyonda bana takım arkadaşı olarak beni yanlız bırakmayan ve birçok iyileştirmeyi bizzat kendisi yapmış olan arkadaşıma buradan teşekkürlerimi sunuyorum.

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
  • Share/Bookmark
PDF Creator    Makaleyi PDF formatında gönder

Etiketler: , , , , ,


Tem 07 2010

PostgreSQL Backup Scripti

Category: FreeBSD,Gezegen,PostgreSQLBayram Karagöz @ 16:58

Postgresql veritabanınız varsa belirli periyotlarda veritabanınızın yedeğini almanız yararınıza olacaktır. Her hangi bir problemden dolayı datalarınızı yitirdiğinizde geri dönüşü mümkün olmayan durumlara mahal vermemek için hazırlamış olduğum yedekleme scriptini kullanabilirsiniz.

Aşağıda bulunan script veritabanı VACUUM ANALYZE işlemi yaptıktan sonra istenilen veritabanını dump alıp sıkıştırarak yedeklerin olduğu klasöre kopyalıyor. Bununla birlikte yedeklerin bulunduğu klasör altında 30 günden eski yedekleri de temizliyor. Daha sonra tüm işlemlerin çıktılarını backup.log dosyasında istediğimiz zaman inceleyebilmemiz için logluyor.

Scripti kendinize göre konfigüre ettikten sonra crontab a istediğiniz zaman diliminde çalıştıracak şekilde ekleyebilirsiniz.

#!/usr/local/bin/bash

DUMP_CMD=/usr/local/bin/pg_dump

VACUUM_CMD=/usr/local/bin/vacuumdb

BACKUP_DIR= /your/ backup/ directory

DBUSER="pgsql"

DBNAME="your database name"

DATE=`date +%Y-%m-%d_%Hh%Mm`

LOGFILE=$BACKUP_DIR/../log/backup.log

# Make logfile

# Membuat logfile

exec 6>&1

exec >> $LOGFILE # Link file descriptor #6 with stdout.

# Saves stdout.

exec 7>&2 # Link file descriptor #7 with stderr.

# Saves stderr.

exec 2>> $LOGFILE # stderr replaced with file $LOGERR.

echo "----------------------------------------------------"
echo Backup Procedure is starting..
echo $DATE
echo Starting vacuum operation..

$VACUUM_CMD -z -a -U $DBUSER

echo Vacuum finished...

echo Starting backup of $DBNAME databases...

$DUMP_CMD -U $DBUSER $DBNAME | gzip -c > $BACKUP_DIR/database-$DATE.dump.gz

echo Backup finished...

echo "Deleting old backup files..."

oldbackup=`find $BACKUP_DIR -type f -mtime 30 -name "*.dump.gz"`

for current_file in `echo $oldbackup`

do

rm -f $current_file

echo $current_file deleted

done

echo "Old file deletion finished"

echo " "
echo "----------------------------------------------------"
VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
  • Share/Bookmark
Create PDF    Makaleyi PDF formatında gönder

Etiketler: , , ,


Sonraki Sayfa »