方便地安排命令以便稍后运行?
从现在起8小时后,运行命令的简单方法是什么? 我可以这样思考:
nohup bash -c "sleep 28800 ; ./mycommand.sh" &
有更“正确”的方式吗?
您可以使用at
命令。 稍后执行命令。 at
实用程序应从标准输入读取命令并将它们组合在一起作为作业,以便稍后执行。
通常,默认安装在Ubuntu中,但如果您的版本不包含它,请通过以下方式安装:
sudo apt-get install at
有关更多信息,选项,示例和其他信息,请参阅Ubuntu Manpage存储库
例:
at now +8 hours -f ~/myscript.sh
你也可以使用方便的短途旅行,比如tomorrow
或noon
echo "tweet fore" | at teatime
警告:这将立即在管道左侧运行命令,但稍后仅显示其输出。 该示例还演示了如何将操作传递到。 at -c
是您可以检查计划操作的方式,您可以方便地列出其编号,如下所示:
at -c 3
是的,你可以设置一个cron作业。
例如,如果现在时间是14:39:00,今天是星期五,即8月30日,您可以使用crontab -e
命令在crontab文件中添加以下cron作业(将在8小时后执行):
39 22 30 8 5 /path/to/mycommand.sh
更多关于:
对cron
, at
等使用基于Gnome的GUI:
CronHowto的引入建议使用gnome-schedule
gui,这比输入终端中的所有垃圾要好得多(尤其是“普通”Ubuntu用户,而不是“power”* nix / bsd用户。)
使用Unity Dash(或其他应用程序菜单)运行它以查找计划任务或运行gnome-schedule
。
在基于Gnome的Ubuntu系统上,应用程序 – >系统工具中的Gnome计划任务工具(来自gnome-schedule包)提供了一个图形界面,提示使用Cron。 项目网站位于http://gnome-schedule.sourceforge.net/ ; 该软件可从软件中心安装或键入
sudo apt-get install gnome-schedule
在一个终端。
使用gnome-schedule
,对于主目录中的脚本,将使用这种类型的窗口设置新的“at”命令:
在我发现之前,我想出了一个快速而肮脏的方法来做这件事。
假设您希望脚本在中午运行:
until [[ "$(date)" =~ "12:00:" ]]; do sleep 10 done ./mycommand.sh
假设您希望它明天中午运行(今天是11月24日对我来说):
until [[ "$(date)" =~ "25 12:00:" ]]; do sleep 30 done ./mycommand.sh