1. 利用date命令重定向到以當前時間命名的文件
例如:
ls -l > mylog_$(date +"%Y-%m-%d_%H-%M-%S").log
或:
ls -l > mylog_`date +"%Y-%m-%d_%H-%M-%S"`.log
2. 配合Crontab實現定時日志
例如:每5分鍾記錄/tmp目錄下的文件
*/5 * * * * ls -l /tmp > /data/cronlog_$(date +"\%Y-\%m-\%d_\%H-\%M-\%S").log
或:
*/5 * * * * ls -l /tmp > /data/cronlog_`date +"\%Y-\%m-\%d_\%H-\%M-\%S"`.log
可以注意到此時百分號%
前面都加了反斜杠\
。原因是在crontab中的命令遇到百分號%
會換行,因此需要加入反斜杠\
進行轉義。
Linux原文解釋:Percent-signs (%) in the command, unless escaped with backslash (), will be changed into newline characters, and all data after the first % will be sent to the command as standard input.
3. date命令格式
- date [+格式],如:
date +%Y-%m-%d
- 如果有空格,需要用雙引號括起來。(建議無論有無空格,格式化輸出時都用雙引號括起來)
date +"%Y-%m-%d %H:%M:%S"
- 常用格式釋義:
%Y 年
%y 年(年份最后兩位)
%m 月
%d 日
%H 時(24小時制)
%I 時(12小時制)
%M 分
%S 秒
%Z 時區
%D 日期,等於%m/%d/%y
%T 時間,等於%H:%M:%S
%x locale日期描述,例如12/31/99(類似於 %D或 %m/%d/%y)
%X locale時間描述,例如23:13:48(類似於 %T或 %H:%M:%S)
更多詳細格式可參考此處