By slink - slink@gdn.net
FAQ:
Q: What is Crontab?
A: Crontab is a program
that runs in conjunction with your UNIX
shell that functions
as an event timer. If you've ever used one of those
old hunky devices
that you slide tabs into at certain points to turn your
lamp on and off at
a specific time, you know what crontab does. Crontab
is the digital version
of that lamp timer, only it functions to run a
specific program instead
of turning the lights at GDN HQ on and off (of
course, they COULD
build a device that turns the lights on and off with
the aid of a crontab
entry and a bash script... don't think they will
though.)
Q: What is Crontab
primarily used for?
A: If you have a
bot or know what a bot is, that is a good
function for crontab;
bots have a tendency to go down at odd times, and
will ALWAYS go down
in the unlikely even that the GDN servers go offline.
Crontab can run a
script canned botchk that will look for your bot and if
it is not functioning,
can reload another copy of the bot into memory.
Crontab can also be
used by the administration to switch log files at certain times of day,
empty the temporary directory on a certain date and time, and many other
wonderful uses.
HOWTO:
So, you want to learn
how to use crontab, eh? Well first you
have to learn how
crontab operates. It runs with a simple config
file, and all you
have to do is write one, and stick it into your
crontab and it will
run at the specified times.
The way a crontab
entry looks:
minute hour day month
year program
Each value except
the program section can be filled with any number that
fits in the correct
range for each division. For example, the minute
field must contain
a 2-digit number less than 60. (00 for on the hour, 59
for the minute before).
Hour must be less than 24, 00 being midnight and
12 being noon. Day
is the days in the month, not to exceed the number of
days in the corresponding
month, and so on. Any value may be substituted
by the wildcard *,
meaning at ALL values. If you want a program to be run
every minute on the
minute (such as a botchk) you would specify a * for
each field. Here is
what my crontab looks like:
# slink crontab entry
* * * * * /home/slink/egg/botchk
30 14 * * * /home/slink/.procmail/pon
59 21 * * * /home/slink/.procmail/poff
This runs botchk every
minute on the minute, 'pon' at 2:30 p.m. every day,
and 'poff' at 9:59
p.m. each evening. Please note that you MUST specify
the complete path
to your program, because crontab is running from the
security level of
the system administrator (root) so anything without a
path will be assumed
to be in the root directory (/) which you don't have
access to. Be very
careful about running crontabs that run every minute
on the minute - if
you don't get it right you'll be clogging the system
up. Crontab is designed
so that if there are any problems running your
program at the specified
time, it will send a warning mail to your
account. This mail
will continue and occur each time there is a problem
until it is resolved.
I cannot stress enough that this not a program to
be toyed with. It
is a very helpful tool for users who need programs to
be run at specified
times during the day without their having to be
online.
To get your crontab
entry online, simply edit a file (call it whatever you
like) and put in your
entry. Be sure it looks good and each line of code
is on one line and
that each line has its own separate line. You don't
have to skip lines,
but be sure that each entry is distinguishable from
the last. Once you
are finished sculpting your crontab entry, save the
file and exit the
editor. When you are absolutely sure your crontab is
correct, type in:
crontab yourcrontabfile
For example if you
created the file my.crons you would type:
crontab my.crons
You're set.
To check your crontab
entries, type:
crontab -l
To remove your entries
and stop crontab, type:
crontab -r
*** A note about eggdrop
bots and the botchk program:
If you would like
to install a crontab to watch over your eggdrop
bot, there are many
things to take into consideration. You need to edit
the file botchk in
your eggdrop directory and make sure all the
configuration lines
are correct. I'm assuming if you've figured out
eggdrop OK so far,
this won't be hard. Now: here's the problem: if you
are running eggdrop
1.1.5 or higher (I'm mainly talking to the eggdrop
1.2's out there...)
you *MUST* make the bot's nickname in the botchk file
correspond EXACTLY
(capitals and small letters COUNT *AS ALWAYS IN UNIX*)
with your *PARTYLINE
NICK*. If you don't know what I'm talking about,
re-read your egg.config
and check it out. Your bot has a botnick and a
botname - the botnick
is used in IRC and the botname is used for botnets
and partyline access.
The bot's NAME is the nick that botchk wants. For
*EVERYONE*: To find
out the correct nick to put in botchk type (in your
egg dir):
ls pid.*
You should get back
something like this:
pid.yourbotstruenick
My bot's nick is Waiter,
but his NAME is PartyBOT. Mine said:
pid.PartyBOT
That last part there
(the PartyBOT - don't type pid or .) is what you need
to put in your botchk.
If they don't correspond EXACTLY, your bot will
have several copies
of itself running, and that could get ugly.
A final note: Only
one process is allowed here at GDN - meaning that if
your bot runs itself
a bunch of times, you will be violating the rules,
and will be asked
to not run bots in the future.
If you have any problems,
questions, suggestions, etc. for this FAQ/HOWTO
send them to slink@gdn.net
- Happy botchk'ing!
slink
|