51

I'd like to be able to schedule a server reboot at a specific time, but not regularly. How can I do this without futzing with adding and removing cron entries?

5 Answers 5

92

If it is one-time deal, you can use shutdown command with -r as argument. Instead of using shutdown now, you can add time as parameter. Example:

shutdown -r 12:30

This also works with times in the early morning - so if it's 15:55 now, you can reboot the server at 3:15am tomorrow morning. You can also add & to put the command in background so you can log-off without killing the shutdown command. Example:

shutdown -r 03:15 &

In case, to cancel that reboot: run this:

shutdown -c
4
  • 8
    -r is critical otherwise you will be hitting a power button somewhere to bring it back up.
    – egorgry
    Commented Aug 22, 2009 at 21:51
  • 16
    This also works with times in the early morning - so if it's 15:55 now, you can use 'shutdown -r 03:15 &' to reboot the server at 3:15am tomorrow morning. (the '&' shunts the command the background so you can log-off without killing the shutdown command)
    – Andrew
    Commented Aug 25, 2009 at 14:55
  • 3
    This has the advantage/drawback (depending on your use case) of alerting everyone every hour or so via a broadcast message of the upcoming reboot. Commented Aug 5, 2014 at 8:33
  • To cancel this schedule just shutdown -c without any other argument Commented Jul 5, 2023 at 9:53
20

According to the man page: /sbin/shutdown [-t sec] [-arkhncfFHP] time [warning-message] found at --> http://unixhelp.ed.ac.uk/CGI/man-cgi?shutdown+8

Load of options to choose from but, to answer your question.

To reboot in 5 minutes: /sbin/shutdown -r 5 "reboot in five minutes"

To reboot at exactly 11:00 P.M.: /sbin/shutdown -r 23:00 "rebooting at 11:00 P.M."

NOTE: your message will be broadcast to all active terminals / sessions.

8

the at command is what you want.

at 5:00pm 
do
cd /
/full/path/to/init 6
done

at -l will list the at cmds

4
  • 6
    I would use shutdown instead of init. It's not necessary to do the cd or the do/done (which would probably produce an error). Commented Aug 22, 2009 at 22:17
  • really? I've used this for over 8 years and I've never has an issue. hpux. solaris, linux 2.2 - 2.6
    – egorgry
    Commented Aug 22, 2009 at 22:47
  • 1
    I personally prefer init 6 myself; had intermittent issues with shutdown -r on some platforms in the past
    – warren
    Commented Aug 23, 2009 at 2:04
  • I don't think that we should suggest to execute init 6 on an unknown path, just because a user of Solaris suggests that. I think Solaris is nice but the OP was asking about the Linux kernel. Commented Jul 5, 2023 at 9:59
7

The easiest way I can think of is:

# sleep 2h && reboot

Run this as root.

3
  • what's about root permissinos?
    – Tebe
    Commented Nov 3, 2017 at 11:05
  • as I said, run it as root.
    – Omry
    Commented Nov 3, 2017 at 22:26
  • sleep 2h && sudo reboot if sudo user
    – Fabian
    Commented Jun 11 at 15:08
0
echo "reboot" | at -m 23:00       

....

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .