Lebih
Skrip shell Linux untuk pencadangan basis data
Saya mencoba banyak skrip untuk pencadangan basis data tetapi saya tidak bisa melakukannya. Saya ingin mencadangkan database saya setiap jam.
Saya menambahkan file ke folder "/etc/cron.hourly/", mengubah chmod menjadi 755, tetapi tidak bisa berjalan.
Setidaknya saya menulis kode pseudo saya.
Saya akan senang jika Anda dapat menulis skrip untuk operasi ini dan memberi tahu saya apa yang harus saya lakukan lebih lanjut?
Setelah menambahkan file skrip ini ke folder /etc/cron.hourly/
.
- Dapatkan tanggal saat ini dan buat variabel,
tanggal=tanggal(d_m_y_H_M_S)
- Buat variabel untuk nama file,
filename="$date".gz
- Dapatkan dump dari database saya seperti ini
mysqldump --user=my_user --password=my_pass --default-character-set=utf8 my_database | gzip > "/var/www/vhosts/system/example.com/httpdocs/backups/$("filename")
- Hapus semua file di folder
/var/www/vhosts/system/example.com/httpdocs/backups/
yang lebih lama dari 8 hari - Ke file
"/var/www/vhosts/system/example.com/httpdocs/backup_log.txt"
, teks ini akan ditulis:Backup dibuat pada $("date")
- Ubah pemilik file (chown) dari root ke "my_user". Karena saya ingin membuka file backup dan log dari akun FTP "my_user".
- Saya tidak ingin ada email setelah setiap cron.
>/dev/null 2>&1
akan ditambahkan.
38
3
Setelah berjam-jam bekerja, saya menciptakan solusi seperti di bawah ini. Saya copy paste untuk orang lain yang bisa mendapatkan manfaat.
Pertama-tama buatlah sebuah file script dan berikan file ini izin eksekusi.
Kemudian salin baris-baris berikut ke dalam file dengan Shift+Ins
Edit: Jika Anda menggunakan InnoDB dan pencadangan membutuhkan waktu terlalu lama, Anda dapat menambahkan "transaksi tunggal" argumen untuk mencegah penguncian. Jadi baris mysqldump akan seperti ini:
Buat skrip yang mirip dengan ini:
Kemudian Anda dapat mengedit
crontab
pengguna yang akan menjalankan skrip tersebut:Dan tambahkan entri
Ini akan membuatnya berjalan pada menit pertama setiap jam setiap hari.
Kemudian Anda hanya perlu menambahkan gulungan Anda dan fungsi lainnya dan Anda siap untuk pergi.