在我的用户的 crontab 中,在 CentOS 系统上,我有这样的东西:
58 12 * * * cd /home/joe/dev; echo `pwd` | logger
Run Code Online (Sandbox Code Playgroud)
这在 /var/log/messages 中输出:
Feb 19 12:58:01 srv01 joe: /home/joe
Run Code Online (Sandbox Code Playgroud)
而不是输出:
Feb 19 12:58:01 srv01 joe: /home/joe/dev
Run Code Online (Sandbox Code Playgroud)
为什么输出时不保留目录pwd
?
小智 6
这些命令是独立运行的,因此与期望它们在相同的 shell/环境中运行不同。通过创建一个执行所需命令的 shell 脚本,然后从 crontab 调用该脚本,您可能会得到更好的服务。
更新:以上是猜测和/或提议的可能性(作为评论如此简洁和积极地指出)。所以我决定在 CentOS 6.6 上测试......我错了......以下 crontab 条目正常工作:
* * * * * echo \`pwd` |logger; cd /home; echo `pwd` |logger;
Run Code Online (Sandbox Code Playgroud)
所以这应该对你有用......我仍然认为你最好通过在你的 crontab 中调用脚本而不是单个命令来服务......但这是一个偏好(所以请在评论中保持友好......)。
小智 5
以下应该工作:
58 12 * * * (cd /home/joe/dev; echo `pwd` | logger)
Run Code Online (Sandbox Code Playgroud)
通过将命令括在括号中,您应该强制它们都在同一个子 shell 中运行。
归档时间: |
|
查看次数: |
12972 次 |
最近记录: |