我想将每个 crontab 输出跟踪到单独的文件中。通常,我将其用作 crontab 条目:
1 * * * * root php /mix/dostuff.php > /tmp/dostuff.txt
现在,我想将其改为写入/tmp/dostuff.txt
,而不是写入/tmp/dostuff-YYYY-MM-DD-HH-II-SS.txt
我可以使用以下命令获取日期部分:
TIMESTAMP=`date +%Y-%m-%H\ %k:%M:%S`
现在,我如何将此时间戳粘贴到输出文件中?
答案1
crontabs 在与默认 shell 不同的环境中运行,因此您可以在主目录下使用一个小型 shell 脚本,其中包含类似这样的内容(我们将其命名为script.sh
):
#!/bin/bash
php /mix/dostuff.php > /tmp/dostuff-`date +%Y-%m-%H\ %k:%M:%S`.txt
exit
然后更改此脚本的权限以确保它是可执行的,755 应该没问题。然后在您的 crontab 中:
1 * * * * root /home/yourusername/script.sh
答案2
1 * * * * root php /mix/dostuff.php > "/tmp/dostuff-`date +\%Y-\%m-\%H\ \%k:\%M:\%S`.txt"
就那么简单。
答案3
在 CentOS 6.6 上,我使用
*/10 * * * * /usr/bin/php -q /var/www/script.php > cron-job-log-$(date +\%Y\%m\%d\%H\%M\%S).txt
它将每 10 分钟创建一个文件
cron-job-log-20150401124001.txt
答案4
按照下面的方法尝试一下。它会完美地工作。
1 * * * * root /home/你的用户名/script.sh > /var/log/foldername/output_filename_$(date +\%Y-\%m-\H%).log
通过之前创建的备份文件夹放入日志路径中。