#!/bin/bash value=`cat test.txt` echo "Output: $value" >> currentOutput.txt
通过在shell中执行这个脚本,它会正确地写入currentOutput.txt中的值。 通过在/ etc / crontab上执行这个脚本,这个文件只会被填充“Output:”。
shell和crontab中的执行用户是root。 另外从“currentOutput.txt”,“test.txt”和脚本的所有者是根。 我只是想知道正常执行和crontab执行之间的不同输出。
这是我的crontab项目:
*/5 * * * * root /bin/sh /var/www/testscript.sh
有什么build议么?
尝试使用test.txt的绝对path,crontab不太可能使用与执行脚本时相同的本地目录,并且该文件可能不存在。
工作目录很可能不是你的文件所在的目录(例如/var/www )。 尝试指定test.txt的完整path。
在cron作业中,您应该尽可能具体,因为整个环境与您的正常shell环境有很大不同。