Saya menyiapkan Cronjob yang akan mencadangkan database MySQL yang saya miliki di server saya, tetapi saya tidak ingin terus menimpa file yang sama berulang kali. Sebagai gantinya, saya ingin memiliki serangkaian cadangan untuk dipilih, dilakukan secara otomatis. Sebagai contoh:
## Cronjob, run May 21st, 2011:
mysqldump -u username -ppasword database > /path/to/file/21-03-2011.sql
## SAME Conjob, run May 28th, 2011:
mysqldump -u username -ppasword database > /path/to/file/28-03-2011.sql
Dan seterusnya.
Apakah ada cara saya dapat menggunakan tanggal dan / atau waktu sistem sebagai semacam variabel dalam Cronjob saya? Jika tidak, apa saran Anda untuk mencapai hal yang sama?
date
di dalam cronfile: beberapa crons (semua?) Memperlakukan%
sebagai akhir dari perintah. (jadi$()
bukan masalahnya). Anda harus keluar dari semua tanda persen:... touch "/tmp/$(date +\%Y-\%m-\%d)"
(lebih baik menggunakan format tanggal yang agak leksikografis)DATE=$( date -I )
dan kemudian menggunakan${DATE}
hasil selanjutnya dalam menggunakan literal$( date -I )
di baris perintah pekerjaan.%
juga diperlukan pada OpenSuse 42.Anda harus bisa menggunakannya
date
.Ketik
info date
atauman date
untuk detail.Sesuatu seperti yang berikut ini mungkin cocok untuk Anda (ubah format tanggal sesuai kebutuhan Anda)
sumber
%
karakter di dalam cron.Lihat: http://www.ducea.com/2008/11/12/using-the-character-in-crontab-entries/
sumber
Inilah skrip bash yang saya gunakan:
File terlihat seperti:
Arahkan tugas cron untuk menjalankannya setiap malam atau apa pun yang Anda inginkan.
sumber
Tulis skrip pembungkus kecil yang menggunakan
date
perintah dan memanggil perintah cadangan Anda.sumber