7

I wanted Crontab shut down the system daily but it didn't do so, did I misspelled something? This is my Crontab file:

 /etc/crontab: system-wide crontab
 Unlike any other crontab you don't have to run the `crontab'
 command to install the new version when you edit this file
 and files in /etc/cron.d. These files also have username fields,
 that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

 m h dom mon dow user   command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Shutdown every day at 02:30 am

30 0 2 * * * /sbin/shutdown -h now

It's ok but I'm a bit new to Ubuntu, so I do open Crontab -e in the Terminal an it's looks like this:

# Edit this file to introduce tasks to be run by cron.

# Each task to run has to be defined through a single line indicating with
# different fields when the task will be run and what command to run for the
# task. To define the time you can provide concrete values for minute (m), 
# hour (h), day of month (dom), month (mon), and day of week (dow) or use 
# '*' in these fields (for 'any').

# Notice that tasks will be started based on the cron's system daemon's 
# notion of time and timezones. Output of the crontab jobs (including 
# errors) is sent through email to the user the crontab file belongs to 
# (unless redirected).

# For example, you can run a backup of all your user accounts at 5 a.m 
# every week with:

# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

# For more information see the manual pages of crontab(5) and cron(8)

# m h dom mon dow command
30 02 * /sbin/shutdown -h now

So I should type my command at the end or how? and how to save it because I'm confused.

MarAvFe
  • 105

3 Answers3

14

You have configured the crontab wrong do as following:

  1. In terminal type:

    sudo crontab -e
    
  2. Then give the entry for it like:

    30 02 * * * /sbin/shutdown -h now
    
David Foerster
  • 36,264
  • 56
  • 94
  • 147
Tarun
  • 4,245
  • 13
  • 50
  • 74
  • Yes its normal just append this line at the end of the line nothing else. – Tarun Nov 16 '13 at 11:03
  • ok but how to save it in Terminal? because I don't see save function over there. –  Nov 16 '13 at 11:14
  • 2
    see the link here: https://help.ubuntu.com/community/CronHowto – Tarun Nov 16 '13 at 13:09
  • it worked I saved it, it appears to be in there, thanks! but one more question this command will work everyday? I dont need to type in daily or every day or something like that? –  Nov 16 '13 at 13:12
  • yes it will work every day. Don't need to do anything. See the link above to get more familiar with how to set crontab. – Tarun Nov 16 '13 at 13:17
  • A key bit I was missing in reading this answer, (after trying my user's crontab with sudo poweroff) was that you want to use the root user's crontab, via sudo. D'oh. – Gertlex Jan 04 '22 at 15:45
0

Trying /sbin/poweroff just didn't make it happen. What worked for me was

$ sudo crontab -e

and then

# m h  dom mon dow   command
30 2 * * * sudo poweroff
MarAvFe
  • 105
0

I operate in the following manner.

echo 'hoge ALL=NOPASSWD: /sbin/shutdown' | sudo tee /etc/sudoers.d/hoge

crontab -e

26 4 * * * sudo shutdown -r now

yuuta
  • 1