From b06ba67540975f18609d5b50b5446f444ad17c16 Mon Sep 17 00:00:00 2001 From: Alan Hicks Date: Sat, 1 May 2010 17:51:28 -0400 Subject: Forgot to add cron to Process Control. That's now rectified. --- chapter_06.xml | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/chapter_06.xml b/chapter_06.xml index 99c44e1..a2d0426 100644 --- a/chapter_06.xml +++ b/chapter_06.xml @@ -239,4 +239,84 @@ right from within top itself. +
+cron + + +Ok, so we've learned many different ways of viewing the active +processes on our system and means of signalling them, but what if we +want to run a process periodically? Fortunately, Slackware includes +just the thing, crond(8). cron runs +processes for every user on the schedule that user demands. This makes +it very useful for processes that need to be run periodically, but +don't require full daemonization, such as backup scripts. Every user +gets their own entry in the cron database, so non-root users can +periodically run processes too. + + + +In order to run programs from cron, you'll need to use the +crontab(1). The man page lists a variety of +ways to do this, but the most common method is to pass the +-e argument. This will lock the user's entry in the cron +database (to prevent it from being overwritten by another program), +then open that entry with whatever text editor is specified by the +VISUAL environment variable. On Slackware systems, this is typically +the vi editor. You may need to refer to the +chapter on vi before continuing. + + + +The cron database entries may seem a little archaic at first, but they +are highly flexible. Each uncommented line is processed by +crond and the command specified is run if +all the time conditions match. + + +darkstar:~$ crontab -e +# Keep current with slackware +30 02 * * * /usr/local/bin/rsync-slackware64.sh 1>/dev/null 2>&1 + + + +As mentioned before, the syntax for cron entries is a little difficult +to understand at first, so let's look at each part individually. From +left to right, the different sections are: Minute, Hour, Day, Month, +Week Day, and Command. Any asterisk * entry matches +every minute, hour, day, and so on. So from the example above, the +command is "/usr/local/bin/rsync-slackware64.sh 1>/dev/null 2>&1", and +it runs every weekday or every week of every month at 2:30 a.m. + + + +crond will also e-mail the local user with +any output the command generates. For this reason, many tasks have +their output redirected to /dev/null, a special +device file that immediately discards everything it receives. In order +to make it easier for you to remember these rules, you might wish to +paste the following commented text at the top of your own cron entries. + + + +# Redirect everything to /dev/null with: +# 1>/dev/null 2>&1 +# +# MIN HOUR DAY MONTH WEEKDAY COMMAND + + + +By default, Slackware includes a number of entries and comments in +root's crontab. These entries make it easier to setup periodic system +tasks by creating a number of directories in /etc +corrosponding to how often the tasks should run. Any script placed +within these directories will be run hourly, daily, weekly, or monthly. +The names should be self-explainatory: +/etc/cron.hourly, +/etc/cron.daily, +/etc/cron.weekly, and +/etc/cron.monthly. + + +
+ -- cgit v1.2.3