Ubuntu – Daily server reboot cron

cronserver

I want to create a cron job which executes daiy at assigned time and it restart the ubuntu server.

I try to add reboot only in cron, but it is not working, whereas it works when I try to execute it from CLI.

Please advise, what command should I add in cron, so that it reboot the server daily at specific time.

Best Answer

  • You need to run the following command:

    /sbin/shutdown -r now
    

    with root pirviliges. The way to do it is to use root's crontab, not your user crontab. A sudo before the usual crontab command does that:

    sudo crontab -e
    

    Tip: You can switch the shell's standard editor for things like crontab and visudo with sudo update-alternatives --config editor and then select the editor of your choice.

    Editing the crontab you should add the following line to your file:

    # For more information see the manual pages of crontab(5) and cron(8)
    # 
    # m h  dom mon dow   command  
    
    @daily root /sbin/shutdown -r now
    

    The "@daily" here is a shortcut for every day at midnight (equivalent to "0 0 * * *"). By the way - why do you want a daily reboot?

    EDIT - see https://help.ubuntu.com/community/CronHowto for the following: "Crontab commands are generally stored in the crontab file belonging to your user account (and executed with your user's level of permissions). If you want to regularly run a command requiring administrative permissions, edit the root crontab file: sudo crontab -e"

    EDIT - thanks to @charlesbridge for his comment - edited answer to include the full path