Bagaimana cara menambahkan id unik ke nama file dalam pekerjaan cron?

8

Cronjob saya terlihat seperti ini:

5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.dump

Bagaimana saya bisa membuat nama file unik untuk setiap kali ketika cronjob menulis mysql_daily.dump?

Sobat
sumber
2
Luangkan waktu untuk mengeja judul dengan benar. Itu membuat pencarian jauh lebih mudah untuk semua orang.
Mikel
1
Anda menulis "Bagaimana cara menambahkan uniqie id ke file nime dalam tugas cron".
Mikel
Mengapa Anda tidak menggunakan automysqlbackup?
stoeff

Jawaban:

14

Untuk bash, mungkin:

... > /srv/backup/mysql_daily-$(date -u +\%Y\%m\%dT\%H\%M\%S)Z.${RANDOM}.dump

Secara pribadi, saya umumnya hanya menaruh perintah sederhana di blog saya crontab. Saya akan memasukkan ini ke dalam skrip kecil dan menggunakan skrip dalam crontab. Ini akan bermanfaat jika tidak mengharuskan %karakter untuk melarikan diri (perangkap crontab umum).

pembaruan membuatnya ISO 8601 per @ johan komentar

cron

nix
sumber
1
Anda bisa memodifikasi sedikit sintaks dan itu akan menjadi format tanggal ISO 8601 yang sempurna. [YYYY] [MM] [DD] T [hh] [mm] [ss] Z, karena Anda menggunakan date -u untuk UTC Anda bisa menambahkan Z setelah tanggal;). en.wikipedia.org/wiki/…
Johan
3

Praktik umum untuk ini adalah menggunakan cap waktu menggunakan date +%suntuk menghasilkan sesuatu yang berguna untuk menandai file (saya menggunakan detik sebagai contoh tetapi Anda dapat menggunakan format tanggal apa pun). Benar-benar tidak perlu memiliki nama file yang benar-benar unik selama nama file tidak bertentangan.

5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily_`date +\%s`.dump
Caleb
sumber
1

Mencoba

5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.$(/bin/date +\%Y\%m\%d).dump

yang akan menempatkan tanggal saat ini dalam format YYYYMMDD ke nama file.

Gilles 'SANGAT berhenti menjadi jahat'
sumber