Solusi 1:
Anda dapat menyalurkan output skrip melalui loop yang mengawali tanggal dan waktu saat ini:
./script.sh | while IFS= read -r line; do printf '%s %s\n' "$(date)" "$line"; done >>/var/log/logfile
Jika Anda akan sering menggunakan ini, mudah membuat fungsi bash untuk menangani perulangan:
adddate() {
while IFS= read -r line; do
printf '%s %s\n' "$(date)" "$line";
done
}
./thisscript.sh | adddate >>/var/log/logfile
./thatscript.sh | adddate >>/var/log/logfile
./theotherscript.sh | adddate >>/var/log/logfile
Solusi 2:
Lihat ts
dari moreutils
Ubuntu paket:
command | ts
Atau, jika $command
melakukan buffering otomatis (membutuhkan expect-dev
paket):
unbuffer command | ts
Solusi 3:
Tanggal perintah akan memberikan informasi itu
date -u
Sat Sep 10 22:39:24 UTC 2011
jadi kamu bisa
echo $(date -u) "Some message or other"
apakah itu yang Anda inginkan?
Solusi 4:
Anda cukup gema output perintah ke file log. yaitu,
echo "`date -u` `./script.sh`" >> /var/log/logfile
Ini benar-benar berfungsi :)
Contoh:
[[email protected]]$ ./script.sh
Hello Worldy
[[email protected]]$ echo "`date -u` `./script.sh`" >> logfile.txt
[[email protected]]$ cat logfile.txt
Mon Sep 12 20:18:28 UTC 2011 Hello Worldy
[[email protected]]$
Solusi 5:
Buat config.sh
berkas
#!/usr/bin/env bash
LOGFILE="/path/to/log.log"
TIMESTAMP=`date "+%Y-%m-%d %H:%M:%S"`
Saat Anda perlu mengirim ke file log, gunakan
#!/usr/bin/env bash
source /path/to/config.sh
echo "$TIMESTAMP Say what you are doing" >> $LOGFILE
do_what_you_want >> $LOGFILE
File log akan terlihat seperti
2013-02-03 18:22:30 Say what you are doing
Jadi akan mudah untuk mengurutkan berdasarkan tanggal
Bagaimana cara mendapatkan url repo svn saat ini?
Periksa apakah port terbuka atau tertutup di server Linux?