方便地安排命令以便稍后运行?

从现在起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 

你也可以使用方便的短途旅行,比如tomorrownoon

 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 

更多关于:

cronat等使用基于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