CT320: Network and System Administration

Fall 2019

Periodic

Show Lecture.Periodic as a slide show.

CT320 Periodic

CHAPTER 9: PERIODIC PROCESSES

Original slides from Dr. James Walden at Northern Kentucky University.

Topics

  1. Overview
  2. Cron Daemon
  3. Crontab Format
  4. Crontab Command
  5. Common Uses

Overview

Daemons

$ ps -e | grep 'd$' | sort -k4 -u
   2368 ?        00:00:00 atd
   1049 ?        00:00:20 chronyd
3706189 ?        00:00:11 crond
   6510 ?        00:00:00 gvfsd
    208 ?        00:00:00 kaluad
     98 ?        00:00:00 kauditd
    107 ?        00:00:00 kblockd
    104 ?        00:01:04 khugepaged
     99 ?        00:00:04 khungtaskd
    106 ?        00:00:00 kintegrityd
    207 ?        00:00:00 kmpath_rdacd
    103 ?        00:00:00 ksmd
   1101 ?        00:01:10 ksmtuned
      2 ?        00:00:04 kthreadd
    197 ?        00:00:00 kthrotld
1698663 ?        00:00:00 kworker/0:1H-kblockd
 500624 ?        00:00:00 kworker/10:2H-kblockd
1091261 ?        00:00:00 kworker/11:2H-kblockd
1750117 ?        00:00:00 kworker/1:5H-kblockd
1531130 ?        00:00:00 kworker/2:4H-kblockd
1091259 ?        00:00:00 kworker/3:5H-kblockd
1479007 ?        00:00:00 kworker/4:2H-kblockd
1422615 ?        00:00:00 kworker/5:5H-kblockd
1243949 ?        00:00:00 kworker/6:5H-kblockd
2070586 ?        00:00:00 kworker/7:3H-kblockd
4042354 ?        00:00:06 kworker/8:0H-kblockd
4110990 ?        00:00:03 kworker/9:1H-kblockd
1568294 ?        00:00:01 kworker/u24:0-nfsiod
1604679 ?        00:00:01 kworker/u24:2-xprtiod
1693238 ?        00:00:00 kworker/u24:3-nfsiod
1742939 ?        00:00:00 kworker/u24:4-xprtiod
   1874 ?        00:00:00 lockd
   1054 ?        00:00:04 lsmd
    111 ?        00:00:00 md
   1856 ?        00:00:00 nfsiod
   1686 ?        00:09:25 pmcd
   1043 ?        00:12:26 polkitd
     14 ?        00:14:14 rcu_sched
   1396 ?        00:00:00 rhsmcertd
   1036 ?        00:00:04 rpcbind
   1065 ?        00:00:00 rpciod
   1421 ?        00:00:01 rpc.statd
   1403 ?        00:09:23 rsyslogd
   1398 ?        00:00:00 sshd
      1 ?        01:04:03 systemd
   2318 ?        00:14:37 systemd-logind
    695 ?        00:03:55 systemd-udevd
   1390 ?        04:18:22 tuned
   1777 ?        00:01:51 /usr/sbin/httpd
    113 ?        00:00:00 watchdogd
   1066 ?        00:00:00 xprtiod
   1140 ?        00:00:03 ypbind

Topics

  1. Overview
  2. Cron Daemon
  3. Crontab Format
  4. Crontab Command
  5. Common Uses

cron Daemon

Permissions

$ cat /usr/lib/systemd/system/crond.service
[Unit]
Description=Command Scheduler
After=auditd.service nss-user-lookup.target systemd-user-sessions.service time-sync.target ypbind.service

[Service]
EnvironmentFile=/etc/sysconfig/crond
ExecStart=/usr/sbin/crond -n $CRONDARGS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=30s

[Install]
WantedBy=multi-user.target

$ ls -l /usr/sbin/crond
-rwxr-xr-x 1 root root 75712 Mar  6 09:37 /usr/sbin/crond

Is crond SUID? How does it execute your crontab as you?
It’s executed as root by systemd.

Topics

  1. Overview
  2. Cron Daemon
  3. Crontab Format
  4. Crontab Command
  5. Common Uses

crontab Format

Comment lines starting with ‘#’ are ignored by the daemon. Otherwise:

LabelRangeDescription
Minute0–59Minute of Hour
Hour0–23Hour of Day
Day1–31Day of Month
Month1–12Month of Year (or “Jan”, “Feb”, …)
Weekday0–6Day of Week (0=Sunday) (or “Sun”, “Mon”, …)

crontab Schedules

    # Minute, Hour, Day of Month, Month, Weekday

      *     *  *  *   *  echo Every minute
     00     *  *  *   *  echo Every hour
     00     1  *  *   *  echo Every day at 1:00ᴀᴍ
     30   */3  *  *   *  echo Every three hours, on the half-hour
     00    23  *  *   0  echo 11:00ᴘᴍ Sundays
    */5  9-17  *  * 1-5  echo Every five minutes, during working hours
     45 10,22  *  * 0,6  echo 10:45ᴀᴍ and 10:45ᴘᴍ on weekends
     00     8 25 12   *  echo Christmas morning

crontab shortcuts

    @reboot    :  Run once after reboot.
    @yearly    :  Run once a year, i.e.,  “0 0 1 1 *”.
    @annually  :  Run once a year, i.e.,  “0 0 1 1 *”.
    @monthly   :  Run once a month, i.e., “0 0 1 * *”.
    @weekly    :  Run once a week, i.e.,  “0 0 * * 0”.
    @daily     :  Run once a day, i.e.,   “0 0 * * *”.
    @hourly    :  Run once an hour, i.e., “0 * * * *”.

What cron cannot do

crontab Example

    PATH=/usr/local/bin:/home/bonehead/bin:/bin:/usr/bin
    MAILTO=Bonehead@ColoState.Edu
    0 2 1-10 * * du -h -c -d 1 /

Topics

  1. Overview
  2. Cron Daemon
  3. Crontab Format
  4. Crontab Command
  5. Common Uses

crontab Command

Topics

  1. Overview
  2. Cron Daemon
  3. Crontab Format
  4. Crontab Command
  5. Common Uses

Common Uses