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
   1814 ?        00:00:00 atd
   1081 ?        00:00:07 chronyd
   1806 ?        00:00:32 crond
   6442 ?        00:00:00 gvfsd
    209 ?        00:00:00 kaluad
     98 ?        00:00:00 kauditd
    107 ?        00:00:00 kblockd
    104 ?        00:00:20 khugepaged
     99 ?        00:00:01 khungtaskd
    106 ?        00:00:00 kintegrityd
    208 ?        00:00:00 kmpath_rdacd
    103 ?        00:00:00 ksmd
   1100 ?        00:00:26 ksmtuned
      2 ?        00:00:01 kthreadd
    197 ?        00:00:00 kthrotld
 156024 ?        00:00:00 kworker/0:10H-kblockd
2011056 ?        00:00:00 kworker/11:2H-kblockd
 163894 ?        00:00:00 kworker/1:8H-kblockd
 159959 ?        00:00:00 kworker/2:7H-kblockd
3917029 ?        00:00:00 kworker/3:1H-kblockd
  64421 ?        00:00:00 kworker/4:1H-kblockd
1562071 ?        00:00:00 kworker/5:7H-kblockd
3459221 ?        00:00:00 kworker/6:2H-kblockd
2880542 ?        00:00:00 kworker/7:1H-kblockd
3141405 ?        00:00:00 kworker/8:4H-kblockd
     71 ?        00:00:00 kworker/9:0H-kblockd
4053902 ?        00:00:01 kworker/u24:0-nfsiod
4079501 ?        00:00:01 kworker/u24:1-nfsiod
4182812 ?        00:00:00 kworker/u24:2-nfsiod
  48848 ?        00:00:00 kworker/u24:3-rpciod
 167887 ?        00:00:00 kworker/u24:4-nfsiod
   1851 ?        00:00:00 lockd
   1035 ?        00:00:01 lsmd
    112 ?        00:00:00 md
   1836 ?        00:00:00 nfsiod
   1668 ?        00:03:25 pmcd
   1069 ?        00:04:43 polkitd
     14 ?        00:05:00 rcu_sched
   1394 ?        00:00:00 rhsmcertd
   1028 ?        00:00:12 rpcbind
   1041 ?        00:00:00 rpciod
   1396 ?        00:00:00 rpc.statd
   1390 ?        00:03:07 rsyslogd
   1383 ?        00:00:00 sshd
      1 ?        00:24:13 systemd
   1783 ?        00:05:28 systemd-logind
    689 ?        00:01:24 systemd-udevd
   1384 ?        00:34:04 tuned
   1781 ?        00:00:41 /usr/sbin/httpd
    115 ?        00:00:00 watchdogd
   1042 ?        00:00:00 xprtiod
   1133 ?        00:00:11 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  2024 /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