Cara menambahkan log ke crontab dengan cap waktu

9

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.

pengguna3004356
sumber
Jangan lupa untuk keluar dari karakter "%" di crontab Anda! +%d-%m-%y/%H:%M:%SAkan menjadi:+\%d-\%m-\%y/\%H:\%M:\%S
Vylmarion

Jawaban:

7

kenapa tidak adil?

0 * * * * (/bin/date && /home/backup.sh) >> /var/log/backup.log 2>&1

Alexandr Perfilov
sumber
5

Cara mendapatkan cap waktu dalam file

Untuk menambahkan cap waktu pada file yang dapat Anda gunakan datelihat man dateuntuk detail lebih lanjut. Sebagai contoh jika Anda menggunakan terminal Anda akan memiliki output seperti,

$ date +%d-%m-%y/%H:%M:%S
19-12-13/09:14:42

Outputnya dalam format dd-mm-yy/hour:min:sec

Jika Anda ingin meletakkan cap waktu dalam file, gunakan

date +%d-%m-%y/%H:%M:%S > filename

Pengalihan

Jika Anda menggunakan date +%d-%m-%y/%H:%M:%S > filenamemaka tanggal akan disimpan ke dalam file tetapi itu akan ditimpa setiap kali Anda menggunakan perintah. Untuk menambahkannya dalam penggunaan file yang ada,

date +%d-%m-%y/%H:%M:%S >> filename

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,

date +%d-%m-%y/%H:%M:%S

Dan gunakan yang berikut ini di crontab,

0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1

Saya pikir modifikasi di atas harus melakukan apa yang Anda inginkan.

souravc
sumber
Ini harus menjadi jawaban yang diterima
Dominik
1

(Pada Debian Jessie) Gunakan tsperintah yang merupakan bagian dari moreutilspaket. Misalnya:

0 0 * * * /home/backup.sh | ts '[%Y-%m-%d %H:%M:%S]' > /home/groupz/db-backup/fbackup.log 2>&1  

Ini akan menambahkan cap waktu ke setiap baris output dan menyimpannya ke dalam log Anda.

Simon Woodside
sumber
1
Tidak bekerja untuk saya, saya menggunakan Ubuntu 16.04. Saya menginstalmoreutils
Hamman Samuel
0

Karena Anda menjalankan skrip shell, mengapa tidak menambahkan baris seperti,

some ./script    
echo `date -u `
some ./other/script

dalam skrip Anda yaitu / home / backup.sh

Kemudian

0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1

akan menambahkan baris sebelum / sesudah fbackup.log seperti Kamis 14 Jun 11:10:22 UTC 2018

Nihal Sangeeth
sumber
Tidak echo `date -u`sama dengan data -u?
Stephen Rauch
Gema menambahkan garis istirahat AIUI.
pbhj
-2

Anda dapat menambahkan sesuatu ke file menggunakan dua hal ini '>'.

$ echo "test" >> test.txt
$ echo "test" >> test.txt

$ cat test.txt
test
test
OrangeTux
sumber
2
Bagaimana dengan timestamp
user3004356