Genel Bakış: Yedekleme, felaket kurtarmanın temelidir.Sistemin veri kaybına neden olan işletim hatalarını veya sistem arızalarını önlemek için, sabit diskten veya uygulama ana bilgisayar dizisinden veri setinin tamamının veya bir kısmının başka bir depolama ortamına kopyalanması sürecini ifade eder. Bazı web siteleri ve sistemler için veritabanı her şeydir, bu nedenle veritabanının iyi bir yedeği gereklidir!
Yedekleme nedir?
Neden yedekleme?
Afet kurtarma planı yapımı
Depolama ortamı
CD
Bant
Sabit sürücü
Disk dizisi
DAS: Doğrudan bağlı depolama
NAS: ağa bağlı depolama
SAN: Depolama Alanı Ağı
Bulut depolama
Burada, zamanlanmış görevlerin eklenmesi ve kullanılması hakkında konuşmak için depolama ortamı olarak esas olarak yerel diski kullanıyoruz.Temel yedekleme komut dosyaları ve diğer depolama ortamları yalnızca ortam erişim yöntemlerinde farklılık gösterebilir.
1. Disk alanını kontrol edin:
Düzenli bir yedekleme olduğundan, yetersiz alan nedeniyle yedekleme hatası ve veri kaybının sonuçlarını önlemek için yeterli alana sahip bir disk alanı seçmek gerekir!
Geçerli diske depolaması en kolay olanıdır, ancak en az önerilenidir; sunucunun birden fazla sabit diski vardır, en iyisi yedeklemeyi başka bir sabit diskte depolamaktır; mümkünse daha iyi ve daha güvenli bir depolama ortamı seçin;
2. Bir yedekleme dizini oluşturun:
Yukarıdaki komutu / home altındaki alanın yeterli olduğunu görmek için kullandık, bu nedenle yedek dosyasını / home içine kaydetmeyi düşünebiliriz;
cd / ev
mkdir yedekleme
cd yedekleme
3. Bir yedek Kabuk komut dosyası oluşturun:
Aşağıdaki komuttaki VeritabanıAdı'nın gerçek veritabanı adıyla değiştirildiğini unutmayın;
Elbette gerçek adlandırma kurallarını da kullanabilirsiniz!
vi bkDatabaseName.sh
Aşağıdakileri yazın / yapıştırın:
#! / bin / bash
/ usr / local / mysql / bin / mysqldump -uusername -ppassword VeritabanıAdı > / home / backup / DatabaseName _ $ (tarih +% Y% m% d_% H% M% S) .sql
Yedeği sıkıştırın:
#! / bin / bash
/ usr / local / mysql / bin / mysqldump -uusername -ppassword VeritabanıAdı | gzip > / home / backup / DatabaseName _ $ (tarih +% Y% m% d_% H% M% S) .sql.gz
Not:
Kullanıcı adını gerçek kullanıcı adıyla değiştirin;
Parolayı gerçek parolayla değiştirin;
VeritabanıAdı'nı gerçek veritabanı adıyla değiştirin;
4. Çalıştırılabilir izinler ekleyin:
chmod u + x bkDatabaseName.sh
Yürütülebilir izinler ekledikten sonra, komut dosyasında herhangi bir hata olup olmadığını ve normal şekilde kullanılıp kullanılamayacağını görmek için önce onu çalıştırın;
./bkDatabaseName.sh
5. Zamanlanmış bir görev ekleyin
Crontab'ı algıla veya yükle
Crontab'ın kurulu olup olmadığını onaylayın:
Crontab komutunu çalıştırırsanız ve rapor komutu bulunmazsa, bu kurulu olmadığı anlamına gelir
# crontab
-bash: crontab: komut bulunamadı
Crontab kurulu değilse, önce onu kurmanız gerekir.Lütfen belirli adımlara bakın:
CentOS altında zamanlanmış görev programı crontab'ı kurmak için yum komutunu kullanın
CentOS sistem diskinden crontab yüklemek için rpm komutunu kullanın
Zamanlanmış bir görev ekle
Bir emrin yerine getirilmesi:
crontab -e
Şu anda, tıpkı vi düzenleyiciyi kullanmak gibi, zamanlanmış görevi düzenleyebilirsiniz.
Aşağıdakileri girin ve kaydedin:
* / 1 * * * * /home/backup/bkDatabaseName.sh
Özellikle ne anlama geliyor?
Bu, "/home/backup/bkDatabaseName.sh" kabuk komut dosyasının her dakika çalıştırıldığı anlamına gelir.
Örneğin:
/ Etc / crontab'ı değiştirin
#vi / etc / crontab
013 * * * root / home / backup / bkDatabaseName.sh
Her gün saat 3'te yedekleme yapmak anlamına gelir
Düzenleme sayfasından çıkın: çıkmak için ESC'ye tıklayın, ardından ": wq" seçeneğine tıklayın w, çıkmak için q yazın.
Örneğin: her Pazartesi öğlen 12'de bir kez koşun
vi / etc / crontab Sonra: Son satırda, 012 * 1 * root run-parts /home/abckup.sh
6. Test görevinin yürütülüp yürütülmediği
Çok basit, dosyanın bir dakika sonra oluşturulup oluşturulmadığını görmek için "ls" komutunu birkaç kez çalıştıralım!
Görev yürütme başarısız olursa, aşağıdaki komutla görev günlüğünü görüntüleyebilirsiniz:
# tail -f / var / log / cron
Çıktı aşağıdakine benzer:
30 Eyl 14:01:01 bogon run-parts (/etc/cron.hourly): 0anacron başlatılıyor
30 Eylül 14:01:01 bogon çalışma bölümleri (/etc/cron.hourly): 0anacron bitti
30 Eylül 15:01:01 bogon CROND: (kök) CMD (run-parts /etc/cron.hourly)
30 Eylül 15:01:01 bogon run-parts (/etc/cron.hourly): 0anacron başlıyor
30 Eylül 15:01:02 bogon çalışma bölümleri (/etc/cron.hourly): 0anacron bitti
30 Eyl 15:50:44 bogon crontab: (kök) DÜZENLEMEYE BAŞLA (kök)
30 Eylül 16:01:01 bogon CROND: (kök) CMD (run-parts /etc/cron.hourly)
30 Eylül 16:01:01 bogon run-parts (/etc/cron.hourly): 0anacron başlıyor
30 Eylül 16:01:01 bogon çalışma bölümleri (/etc/cron.hourly): bitmiş 0anacron
30 Eyl 16:15:29 bogon crontab: (kök) END EDIT (kök)
Crontab biçimi
1. sütundaki dakika 1 59
Sütun 2 saat 1 23 (0, gece yarısı anlamına gelir)
3. Sıra 1 31
4. sütun 1. ay 12
Beşinci sütun haftası 0 6 (0, Pazar anlamına gelir)
6. sütunda çalıştırma komutu
Aşağıdaki crontab formatıdır:
Çalıştırılacak günün saati haftanın ay günü komutu
Aşağıda crontab dosyası girişlerine ilişkin bazı örnekler verilmiştir:
3021 * * * / usr / local / apache / bin / apachectl restart
Yukarıdaki örnek, apache'yi her gece 21: 30'da yeniden başlatmak anlamına gelir.
454 1,10,22 * * / usr / local / apache / bin / apachectl restart
Yukarıdaki örnek, apache'nin her ayın 1, 10 ve 22 günleri 4: 45'te yeniden başlatılması anlamına gelir.
101 * * 6,0 / usr / local / apache / bin / apachectl restart
Yukarıdaki örnek, apache'nin her Cumartesi ve Pazar 1: 10'da yeniden başlatılması anlamına gelir.
0,3018-23 * * * / usr / local / apache / bin / apachectl restart
Yukarıdaki örnek, apache'nin her gün 18:00 ile 23:00 arasında her 30 dakikada bir yeniden başlatılması anlamına gelir.
023 * * 6 / usr / local / apache / bin / apachectl yeniden başlatma
Yukarıdaki örnek, apache'nin her Cumartesi 23: 00'da yeniden başlatılması anlamına gelir.
0 * / 1 * * * / usr / local / apache / bin / apachectl restart
Apache'yi her saat yeniden başlatın
023-7 / 1 * * * / usr / local / apache / bin / apachectl restart
Apache'yi her saat 23: 00-07: 00 arasında yeniden başlatın
0114 * mon-wed / usr / local / apache / bin / apachectl restart
Apache'yi her ayın 4'ünde ve pazartesiden çarşambaya her saat 11'de yeniden başlatın
04 1 jan * / usr / local / apache / bin / apachectl restart
Apache'yi 1 Ocak'ta 4'te yeniden başlatın