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
   1819 ?        00:00:00 atd
   1075 ?        00:00:01 chronyd
   1823 ?        00:00:04 crond
   6559 ?        00:00:00 gvfsd
    209 ?        00:00:00 kaluad
     98 ?        00:00:00 kauditd
    108 ?        00:00:00 kblockd
    105 ?        00:00:02 khugepaged
    100 ?        00:00:00 khungtaskd
    107 ?        00:00:00 kintegrityd
    208 ?        00:00:00 kmpath_rdacd
    104 ?        00:00:00 ksmd
   1172 ?        00:00:03 ksmtuned
      2 ?        00:00:00 kthreadd
    197 ?        00:00:00 kthrotld
 139710 ?        00:00:00 kworker/0:1H-kblockd
2474416 ?        00:00:00 kworker/10:1H-kblockd
1420620 ?        00:00:00 kworker/11:3H-kblockd
 189209 ?        00:00:00 kworker/1:8H-kblockd
 108959 ?        00:00:00 kworker/2:8H-kblockd
 165549 ?        00:00:00 kworker/3:0H-kblockd
  20666 ?        00:00:00 kworker/4:0H-kblockd
2490624 ?        00:00:03 kworker/5:1H-kblockd
2880431 ?        00:00:00 kworker/6:2H-kblockd
3070522 ?        00:00:04 kworker/7:0H-kblockd
2252206 ?        00:00:11 kworker/8:1H-kblockd
    431 ?        00:00:03 kworker/9:1H-kblockd
 169312 ?        00:00:00 kworker/u24:0-rpciod
  38716 ?        00:00:01 kworker/u24:1-rpciod
 200098 ?        00:00:00 kworker/u24:2-xprtiod
 121785 ?        00:00:00 kworker/u24:3-xprtiod
 136261 ?        00:00:00 kworker/u24:4-nfsiod
   1901 ?        00:00:00 lockd
   1067 ?        00:00:00 lsmd
    111 ?        00:00:00 md
   1880 ?        00:00:00 nfsiod
   1781 ?        00:00:30 pmcd
   1079 ?        00:00:45 polkitd
     14 ?        00:00:44 rcu_sched
   1418 ?        00:00:00 rhsmcertd
   1053 ?        00:00:00 rpcbind
   1057 ?        00:00:00 rpciod
   1417 ?        00:00:00 rpc.statd
   1411 ?        00:00:25 rsyslogd
   1408 ?        00:00:00 sshd
      1 ?        00:03:10 systemd
   1811 ?        00:00:45 systemd-logind
    698 ?        00:00:12 systemd-udevd
   1406 ?        00:05:27 tuned
   1808 ?        00:00:06 /usr/sbin/httpd
    114 ?        00:00:00 watchdogd
   1058 ?        00:00:00 xprtiod
   1177 ?        00:00:00 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 Apr  6 05:40 /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