Show Lecture.Periodic as a slide show.
CT320 Periodic
⏰
CHAPTER 9: PERIODIC PROCESSES
Original slides from Dr. James Walden at Northern Kentucky University.
Topics
- Overview
- Cron Daemon
- Crontab Format
- Crontab Command
- Common Uses
Overview
- Why should a sysadmin repeatedly type long
sequences of commands to do repetitive tasks?
- Scripting and automation provide consistency and
reliability, and prevent typing errors.
- Shell, Perl, or Python scripts can incorporate lengthy
tasks and encode system expertise.
- Some tasks don’t require human intervention, so
they are good candidates for scripts.
- Some tasks are inherently periodic, e.g.,
backups.
Daemons
$ ps -e | grep 'd$' | sort -k4 -u
1814 ? 00:00:00 atd
1081 ? 00:00:26 chronyd
1806 ? 00:01:52 crond
6442 ? 00:00:00 gvfsd
209 ? 00:00:00 kaluad
98 ? 00:00:00 kauditd
107 ? 00:00:00 kblockd
104 ? 00:01:27 khugepaged
99 ? 00:00:06 khungtaskd
106 ? 00:00:00 kintegrityd
208 ? 00:00:00 kmpath_rdacd
103 ? 00:00:00 ksmd
1100 ? 00:01:31 ksmtuned
2 ? 00:00:06 kthreadd
197 ? 00:00:00 kthrotld
2445362 ? 00:00:00 kworker/0:3H-kblockd
2223512 ? 00:00:00 kworker/10:2H-kblockd
2835455 ? 00:00:00 kworker/11:0H-kblockd
2367388 ? 00:00:00 kworker/1:5H-kblockd
2361110 ? 00:00:00 kworker/2:5H-kblockd
1689724 ? 00:00:00 kworker/3:4H-kblockd
1667905 ? 00:00:00 kworker/4:4H-kblockd
449715 ? 00:00:00 kworker/5:1H-kblockd
1044740 ? 00:00:00 kworker/6:6H-kblockd
1774005 ? 00:00:00 kworker/7:0H-kblockd
1372148 ? 00:00:00 kworker/8:0H-kblockd
1970878 ? 00:00:05 kworker/9:6H-kblockd
2324363 ? 00:00:01 kworker/u24:0-rpciod
2304071 ? 00:00:01 kworker/u24:1-events_unbound
2350608 ? 00:00:00 kworker/u24:2-xprtiod
2403231 ? 00:00:00 kworker/u24:3-nfsiod
1851 ? 00:00:00 lockd
1035 ? 00:00:06 lsmd
112 ? 00:00:00 md
1836 ? 00:00:00 nfsiod
1668 ? 00:11:47 pmcd
1069 ? 00:17:43 polkitd
14 ? 00:17:06 rcu_sched
1394 ? 00:00:00 rhsmcertd
1028 ? 00:00:17 rpcbind
1041 ? 00:00:00 rpciod
1396 ? 00:00:02 rpc.statd
1390 ? 00:11:32 rsyslogd
1383 ? 00:00:00 sshd
1 ? 01:20:33 systemd
1783 ? 00:18:24 systemd-logind
689 ? 00:05:08 systemd-udevd
1384 ? 02:03:07 tuned
1781 ? 00:02:24 /usr/sbin/httpd
115 ? 00:00:00 watchdogd
1042 ? 00:00:00 xprtiod
1133 ? 00:00:14 ypbind
- A daemon is a computer program that runs as a
background process.
- Daemons are programs that do not require user
intervention to perform their work.
- Daemons in Linux typically have names that end in the letter ‘d’:
syslogd
: system logging daemon
sshd
: daemon to handle incoming ssh connections
nfsd
: network file system daemon
ypbind
: network information service server
crond
: task scheduler daemon
Topics
- Overview
- Cron Daemon
- Crontab Format
- Crontab Command
- Common Uses
cron Daemon
- The cron daemon is the standard tools for running
periodic commands or scripts.
- The cron daemon reads configuration files with list
of commands and their associated schedules.
- The command lines are executed by default with sh,
but can also use other shells.
- The cron configuration file is called a crontab,
stored in
/var/spool/cron/
username
- Commands run using the UID and GID of the user associated with a crontab.
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
- Overview
- Cron Daemon
- Crontab Format
- Crontab Command
- Common Uses
crontab Format
Comment lines starting with ‘#’ are ignored by the daemon.
Otherwise:
Label | Range | Description |
Minute | 0–59 | Minute of Hour |
Hour | 0–23 | Hour of Day |
Day | 1–31 | Day of Month |
Month | 1–12 | Month of Year (or “Jan”, “Feb”, …) |
Weekday | 0–6 | Day 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
cron
can’t help you with:
- 3rd Monday of the month
- Last Sunday of the month
- Last day of the month
- MLK day
- Election day
- Solstices
- Easter
- Ramadan
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 /
- Changes environment variables for script
- Shell initialization (
.chsrc
, .bashrc
) are not processed
- Can mail output to user upon completion
- At 2:00ᴀᴍ on the 1st through 10th of the month,
run a disk usage command (could be a script)
Topics
- Overview
- Cron Daemon
- Crontab Format
- Crontab Command
- Common Uses
crontab Command
crontab
filename installs filename as crontab
crontab -e
edits your crontab interactively
crontab -l
lists the current crontab file
crontab -l >~/.crontab-backup
protects you from system reconfiguration.
crontab -r
removes the crontab file
- A file exists for each user, including
root
- The super-user can supply a user, e.g.
crontab -r smith
/etc/cron.allow
and /etc/cron.deny
specify which
users can submit crontab files
Topics
- Overview
- Cron Daemon
- Crontab Format
- Crontab Command
- Common Uses
Common Uses
- Simple reminder:
30 4 25 * * mail -s "TPS" bing%End-of-month reports due
- Filesystem Backup
- Filesystem Cleanup
- Network Distribution
- Logfile Management
- Time Synchronization (or use service instead)