如何在Linux中安排重启?


38

我是Linux的新手,我想安排在午夜重新启动。我该怎么办?

编辑:

  • 抱歉,我没有提供完整的详细信息。我想在每月的第3个星期六的23:30重新启动。

  • 我不知道怎么了,但找不到crontab。我拥有的是cron.d; cron.daily; cron.weekly; cron.monthly;

对于菜鸟问题​​,我感到抱歉。请帮助我。谢谢。


2
真正的问题是,为什么要定期执行此操作?应用程序是否泄漏?如果您计划定期重新启动以解决问题,那么您可能遇到了更大的问题……
JamesHannah 2010年

1
您想每晚重启吗?
Matt Simmons 2010年

4
我不反对,因为这是一项政策决定(我认为每晚重新启动都有些过分),但是在基础结构中定期安排重新启动是确保计算机具有最新内核和所有服务正在运行的一种不错的方式被修补。我听说3个月的正常运行时间限制是一个很好的中间立场。
Matt Simmons 2010年

如果这是对问题的评论,而不是答案,我会赞成。实际上,我会改变主意,因为关于这是一次性的还是常规的事情,这个问题一直模棱两可。:)
直觉的2010年

3
/etc/crontab类似条目30 23 15-21 * 6 /sbin/shutdown -r now将在每个月的第三个星期六的23:30重新启动。
克里斯·S

Answers:


45

键入shutdown -r 0:00,它将在午夜重新启动。

如果要每晚重新启动,请使用crontab -e作为根目录添加一个cron条目,以在每个午夜运行shutdown -r

@midnight shutdown -r now

3
时间参数是强制性的,您可以使用now
东武

不,如果他想要一次性命令并立即输入命令,他应该添加时间!
半径

3
@否,它需要一个时间参数,例如now在crontab行中。
暂停,直到另行通知。

糟糕,对不起,我误解了Tobu的评论,并认为他在第一个命令中说0:00毫无用处……我编辑进行更正(而且Massimo的回答也是如此)
半径

我想知道还有哪些其他@{command}变量可用。
格雷格

16

使用crontab

http://en.wikipedia.org/wiki/Crontab

将此条目添加到/ etc / crontab应该可以:

0 0 * * * /sbin/shutdown -r now

3
shutdown需要一个时间参数,例如now
已暂停,直到另行通知。

1
这将每晚重新启动。我不确定这是否是他想要的。
cstamas 2010年

1
最初的问题听起来像他想让它每晚重新启动。他实际上希望它在每个第3个星期六重新启动,而使用crontab仍然最简单
克里斯·S,2010年

我不知道怎么了,但我找不到crontab ..?我所拥有的是cron.d; cron.daily; cron.weekly; cron。每月;对于菜鸟问题​​,我感到抱歉。请帮助我。谢谢
klauriens10年

这取决于您使用的发行版,但是通常您应该在系统的/ etc目录中找到一个名为“ crontab”的文件。您还应该能够使用命令“ crontab -l”检查当前的crontab,并使用“ crontab -e”进行编辑。
Massimo 2010年

12

另一个选项是at命令,在许多Linux发行版中都可用。有关更多信息,请参见手册页,但用于您目的的常规语法为:

回声“重新启动” | 在2000年6月27日

引用OS X手册页:

- 在指定的时间执行的命令

听起来就像我们在说什么。;)


1

据我所知,您不能使用cron来计划“每月的最后一个星期五”或“每月的第三个星期四”的任务。您可能要做的是,让脚本在每个星期六的23:30运行,然后看起来很难看,然后让此脚本确定这个特定的星期六是否是一周中的第三个星期六(可以使用date和cal命令来完成) 。

我希望这有帮助。我没有找到解决此问题的方法。我找到了该线程,因为我正在寻找相同问题的解决方案。


1
以上“ 30 23 15-21 * 6 / sbin / shutdown -r现在”的注释将起作用。它基本上只在该月的第三周运行,但仅在星期六也运行
Sirex 2012年

我认为这条cron行不像您想象的那样有效。
ervingsb 2012年

我创建了以下两行:“ 30 23 1-7 * 4日期”和“ 30 23 1-7 * 3日期”。昨晚我收到两封邮件,都说:“ CET 2012年3月7日星期三23:30:02”
ervingsb

最后一个字段与星期几匹配,零为星期日。4个cronjob在星期三不应该匹配。
Sirex 2012年

这就是我的意思。您编写的规则并不代表您认为的含义。它将在一周内每天触发工作。不管平日。
ervingsb 2012年

0

1)在命令行输入 2)一旦知道重启的位置(通常是/ sbin / reboot),将cd放入/etc/cron.daily,/etc/cron.weekly,/ etc / cron中的目录之一。每小时等...即which reboot
cd /etc/cron.weekly

3)创建一个文件(使用nano或vim),将其称为zzreboot并添加以下行:

#!/ bin / sh
/ sbin /重新启动

您想将文件命名为zzwhatever的原因是确保它是在所有其他作业之后调用的最后一个作业。要确保仅ls -l在目录中执行并确认它是最后一个文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.