我需要每天运行一个脚本。该脚本应该以特定用户(例如 user1)而不是 root 身份运行。所以我将 cron 文件放在 /etc/cron.d 并将用户名放在行(第 2 列)中。但是它给出了一个错误,说找不到命令。我怀疑该脚本不是作为 user1 的环境运行的。我错过了什么?
Lad*_*ada 74
只有/etc/crontab
和 中的文件/etc/cron.d/
有一个用户名字段。在该文件中,您可以执行以下操作:
1 1 * * * username /path/to/your/script.sh
Run Code Online (Sandbox Code Playgroud)
从 root 的 crontabsudo crontab -e
你可以使用:
1 1 * * * su username -c "/path/to/your/script.sh"
Run Code Online (Sandbox Code Playgroud)
或者您可以像这样使用用户的实际 crontab:
sudo crontab -u username -e
Run Code Online (Sandbox Code Playgroud)
任何 crontab 文件中的第二列是您希望作业运行的小时。你是说第六场吗?
如果您使用的可执行文件在 /usr/local/bin 中,您可能需要为该用户设置 PATH。要设置 PATH,请在 cronjobs 之前放置如下内容:
PATH=/bin:/usr/bin:/usr/local/bin
*/5 * * * * user1 sample_executable
Run Code Online (Sandbox Code Playgroud)
另一种方法是在您的 cronjob 中完全指定 sample_executable 的路径,因此:
*/5 * * * * user1 /path/to/sample_executable
Run Code Online (Sandbox Code Playgroud)
如果 sample_executable 引用不在标准 PATH 中的可执行文件,则应使用第一个选项。
用户 crontabs 的典型目录位于 /var/spool/cron/crontabs 中。文件格式是不包含用户名的格式。用户 crontab 由用户拥有,并以模式 0600 的用户命名。最好的处理方法是编写选项卡文件并用于crontab -u username filename
设置您想要为该用户设置的任何 cron 条目。
归档时间: |
|
查看次数: |
152368 次 |
最近记录: |