我使用以下内容通过cronjob运行php脚本:
* / 1 * * * * / usr / bin / php -q /home/hduser/Documents/WebCrawl-ProtestData/preg_match.php> /home/hduser/Documents/cronoutput.txt
脚本每分钟执行一次并在以下位置输出输出:
/home/hduser/Documents/cronoutput.txt
有没有办法在每次运行时将输出存储在新文件中?
答案 0 :(得分:2)
您可以将变量放入crontab文件并在命令中使用它们:
DATE_STRING =date +%s
*/1 * * * * /usr/bin/php -q /home/hduser/Documents/WebCrawl-ProtestData/preg_match.php > /home/hduser/Documents/cronoutput_$($DATE_STRING).txt
在这种情况下,我创建了一个date命令的字符串,并在文件名中进行评估(在文件名中添加一个纪元时间戳)
请注意,初始赋值不会计算,因为cron不是shell,但cron execute的命令行在输出文件名中使用时会对字符串date +%s
进行求值。
答案 1 :(得分:0)
是的,它很简单,可以通过多种方式完成。最好的方法是创建一个包含以下内容的bash脚本:
#!/bin/bash
datestamp=$(date +%Y%m%d-%H%M%S)
outfile=cronoutput-${datestamp}.txt
/usr/bin/php -q /home/hduser/Documents/WebCrawl-ProtestData/preg_match.php > \
/home/hduser/Documents/$outfile
将其存储在runwebcrawl.sh中,生成runwebcrawl.sh可执行文件
chmod 0755 runwebcrawl.sh
从crontab调用runwebcrawl.sh
*/1 * * * * runwebcrawl.sh
它将创建名为:
的文件cronoutput-20140618-123456.txt