The basics of crontab -e, Cron Job Tutorial

Credit for this tutorial goes to Rodrigo Caffo and John Chase for giving me clarification (as a newbie) at running some new commands with ssh.

Rodrigo is a whiz with Ruby on Rails and cron and John a command line guru.

This is a basic tutorial on finding cron jobs and moving them from one server to another:

We recently needed to move a database backup script to a new server after migrating the website, application and database. This is a quick tutorial on the steps to migrate the script.

1. Since I didn't know where the last developer wrote the cron job - I look it up using the crontab command. To see the cron jobs on the server run:

crontab -e

crontab = where the crons run

-e = indicates we want to edit the crons

In this example we see the output of the crons running:

59 * * * * /db/backup.sh
*/15 * * * * /usr/local/cpanel/whostmgr/bin/dnsqueue > /dev/null 2>&1
2,58 * * * * /usr/local/bandmin/bandmin
0 0 * * * /usr/local/bandmin/ipaddrmap
54 0 * * * /usr/local/cpanel/whostmgr/docroot/cgi/cpaddons_report.pl --notify
47 5 * * * /scripts/upcp
0 1 * * * /scripts/cpbackup
0 9 * * * RAILS_ENV=production /home/wwwluna/crm/script/runner 'WorkOrderMailer\
.daily_mails'
0 6 * * * /scripts/exim_tidydb > /dev/null 2>&1
*/5 * * * * /usr/local/cpanel/bin/dcpumon >/dev/null 2>&1

2. Now we recognize one of the scripts "59 * *..." - but want to see what it is. So we run the command "cat" with the path which shows the output of the file.

In this example we run:

cat /db/backup.sh

The output of the file shows we have a backup script saving to the server with a command sending a .gz file of the database to email user "shad (at) lunawebs.com":

root@luna [~]# cat /db/backup.sh
#!/bin/sh

SUBJECT="ESS db backup "`date`
RCPT="shad (at) lunawebs.com"

cd /db
FILENAME="database_"`date "+%s"`
mysqldump -u essyenv_user -pamb13t3n! essyenv_main > /db/$FILENAME
gzip $FILENAME
/bin/mime_mail -s "$SUBJECT" -u "$RCPT" -f "/db/$FILENAME.gz"
root@luna [~]#

3. We want to see how many backups are currently on the server. We run another command.

To see the backups in the db folder with gz compression run:

ls /db/*.gz

4. Now we just port the entire /db/ directory to the new server and the line 59 * * * * /db/backup.sh we add to crontab (using crontab -e)
We should have mysqldump in our path and /bin/mime_mail available

Comments

Be the first to leave a comment on this post.

Leave a comment

To leave a comment, please log in / sign up