Di crontab, saya menjadwalkan skrip cadangan harian. Sekarang ketika cron mengeksekusi skrip, statusnya dicatat ke file log seperti yang ditunjukkan di bawah ini.
0 0 * * * /home/backup.sh > /home/groupz/db-backup/fbackup.log 2>&1
Sekarang, ketika cron mengeksekusi skrip, isi log akan diperbarui setiap saat. Jadi, saya ingin konten ditambahkan ke file yang sama dengan cap waktu yang dieksekusi dan di bawah konten setiap kali bersama dengan konten yang ada. Bagaimana saya bisa melakukan ini.
+%d-%m-%y/%H:%M:%S
Akan menjadi:+\%d-\%m-\%y/\%H:\%M:\%S
Jawaban:
kenapa tidak adil?
0 * * * * (/bin/date && /home/backup.sh) >> /var/log/backup.log 2>&1
sumber
Cara mendapatkan cap waktu dalam file
Untuk menambahkan cap waktu pada file yang dapat Anda gunakan
date
lihatman date
untuk detail lebih lanjut. Sebagai contoh jika Anda menggunakan terminal Anda akan memiliki output seperti,Outputnya dalam format
dd-mm-yy/hour:min:sec
Jika Anda ingin meletakkan cap waktu dalam file, gunakan
Pengalihan
Jika Anda menggunakan
date +%d-%m-%y/%H:%M:%S > filename
maka tanggal akan disimpan ke dalam file tetapi itu akan ditimpa setiap kali Anda menggunakan perintah. Untuk menambahkannya dalam penggunaan file yang ada,Ini akan menambahkan output eksekusi terakhir di akhir file yang ada.
Apa yang Anda lakukan dalam kasus Anda
Anda dapat menambahkan baris berikut di akhir Anda
/home/backup.sh
,Dan gunakan yang berikut ini di crontab,
Saya pikir modifikasi di atas harus melakukan apa yang Anda inginkan.
sumber
(Pada Debian Jessie) Gunakan
ts
perintah yang merupakan bagian darimoreutils
paket. Misalnya:Ini akan menambahkan cap waktu ke setiap baris output dan menyimpannya ke dalam log Anda.
sumber
moreutils
Karena Anda menjalankan skrip shell, mengapa tidak menambahkan baris seperti,
dalam skrip Anda yaitu / home / backup.sh
Kemudian
akan menambahkan baris sebelum / sesudah fbackup.log seperti Kamis 14 Jun 11:10:22 UTC 2018
sumber
echo `date -u`
sama dengandata -u
?Anda dapat menambahkan sesuatu ke file menggunakan dua hal ini '>'.
sumber