As an alternative to cron job scheduler, the at command allows you to schedule a command to run once at a given time without editing a configuration file.

 

The only requirement consists of installing this utility and starting and enabling its execution:

# yum install at              [on CentOS based systems]
$ sudo apt-get install at     [on Debian and derivatives]

 

Next, start and enable the at service at the boot time.

--------- On SystemD ---------
# systemctl start atd
# systemctl enable atd

--------- On SysVinit ---------
# service atd start
# chkconfig --level 35 atd on

 

Once atd is running, you can schedule any command or task as follows. We want to send 4 ping probes to  www.google.com when the next minute starts (i.e. if it’s 22:20:13, the command will be executed at 22:21:00) and report the result through an email (-m, requires Postfix or equivalent) to the user invoking the command:

# echo "ping -c 4 www.google.com" | at -m now + 1 minute

 

If you choose to not use the -m option, the command will be executed but nothing will be printed to standard output. You can, however, choose to redirect the output to a file instead.

 

In addition, please note that at not only allows the following fixed times: now, noon (12:00), and midnight (00:00), but also custom 2-digit (representing hours) and 4-digit times (hours and minutes).

 

For example,

 

To run updatedb at 11 pm today (or tomorrow if the current date is greater than 11 pm), do:

# echo "updatedb" | at -m 23

 

To shutdown the system at 23:55 today (same criteria as in the previous example applies):

# echo "shutdown -h now" | at -m 23:55

 

You can also delay the execution by minutes, hours, days, weeks, months, or years using the + sign and the desired time specification as in the first example.

Răspunsul a fost util? 0 utilizatori au considerat informația utilă (0 Voturi)