Saya menggunakan Linux Mint terbaru. Saya bertanya-tanya apakah mungkin untuk membuat cronjob khusus untuk cadangan basis data.
Dalam /etc/cronjob
file saya, saya memiliki kode berikut:
# Minute Hour Day of Month Month Day of Week Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
30 4 * * 1-6 /home/users/backup.sh
Di saya, /home/users/backup.sh
saya punya:
mysqldump -uroot -p MyDatabase > /home/users/backup_MyDB/full_myDB.sql
Alih-alih full_myDB.sql
saya ingin memiliki sesuatu seperti di 2014-04-04_full_myDB.sql
mana tanggal ditambahkan secara dinamis tergantung pada tanggal yang kita miliki.
Jika file SQL Backup lebih lama dari satu minggu, saya ingin cronjob menghapusnya secara otomatis.
Saya menggunakan informasi di atas dan ingin memberikan satu lagi pembaruan kecil yang benar-benar memotong salah satu tabel yang sangat besar yang memperlambat cadangan kami.
Semoga ini bisa membantu orang lain.
Menggunakan informasi di atas saya membuat skrip shell dasar bernama mysqlbackup.sh dengan konten berikut:
Pastikan untuk menjalankan: chmod + x mysqlbackup.sh
Saya juga meletakkan ini di crontab -e saya:
sumber
Saya tahu ini sudah tua, tapi saya sudah menggunakan jawaban di atas, dan menambahkan instruksi kompresi file. Semoga orang lain menemukan ini berguna.
1) Meneliti sedikit, 7-zip sepertinya kompresor terbaik di luar sana. Jika distro linux Anda mendukungnya, Anda dapat menggunakan penginstal yang tepat:
Atau, Anda dapat menggunakan tar.gz jika Anda merasa lebih nyaman dengannya.
2) Kemudian, Anda membuat skrip, misalnya
/home/users/backup.sh
dengan konten:Script ini akan menemukan file dengan lebih dari 7 hari dan menghapusnya, maka itu akan membuat dump sql, maka akan 7-zip semua file .sql di direktori, maka itu akan menghapus semua .sql di direktori ( BTW, Anda dapat menambahkan perintah mysql sebelum dump, seperti yang dicatat pada jawaban sebelumnya jika Anda membutuhkannya)
3) Kami melakukan
chmod +x /home/users/backup.sh
sehingga dapat dieksekusi.3.1) Anda harus menguji skrip Anda jika berfungsi sebagaimana dimaksud
4) Kami memprogram tugas dengan
crontab -e
Dan itu saja. Ini akan mencadangkan basis data MySQL Anda setiap hari dalam seminggu pada pukul 4:30 pagi (kecuali hari Minggu), dan mengompres cadangan
sumber
Untuk menambahkan jawaban @ Graeme, mungkin perlu dicatat bahwa Anda kadang-kadang perlu keluar dari karakter '%' dalam pekerjaan cron sehingga akan terlihat seperti ini:
sumber