我有一个shell脚本,我希望每天早上8点自动运行,我无权使用crontab,因为我没有root
权限
我的主目录是/home/user1/
。
有什么建议吗?
答案 0 :(得分:0)
即使您没有root权限,也可以设置cron作业。如果您可以修改它或抛出任何错误,请将这两个命令命名为user1。
crontab -l
如果你能看到,那么试试这个:
crontab -e
如果您可以打开并编辑,则可以使用cron运行该脚本。
添加以下行:
* 08 * * * /path/to/your/script
答案 1 :(得分:0)
理想情况下,您应该让系统管理员将您的用户帐户添加到/etc/cron.allow
- 如果您没有权限使用crontab
命令,就像您可能发现的那样。
如果那是不可能的,那么你可以沿着这些行使用包装shell脚本(注意:未经测试):
#!/bin/bash
TIME="tomorrow 8am"
while :; do
# Get the current time in seconds since the Epoch
CURRENT=$(date +%s)
# Get the next start time in seconds
NEXT=$(date +%s -d "$TIME")
# Sleep for the intervening time
sleep $((NEXT-CURRENT))
# Execute the command to repeat
/home/user1/mycommand.sh
done
您可以在后台启动包装器脚本,例如在screen
会话中,只要它处于活动状态,它就会定期执行您的脚本。请记住:
cron
非常相似,没有真正的准确性。开始时间。如果你关心时间到第二个,那么这不是可行的方法。@reboot
中建议crontab
条目,但这似乎不适合您。cron
- 或者它可能是一个明确的决定。在第二种情况下,为了绕过这种限制,他们可能不会在一夜之间留下一些过程。答案 2 :(得分:0)
我认为创建一个cron作业不需要root权限。编辑不属于你的cronjob - 你需要root。
答案 3 :(得分:0)
在紧要关头,您可以使用at
(1)。确保您运行的程序重新安排工作。警告:如果机器停机一段时间,就会发生这种情况。