How to do common tasks from the Linux command line

This document is out of date, see Solutions Backend Programs.

The following describes how to use the backend programs installed on hill301-2.math.rutgers.edu. The backend programs are installed in the directory /data on this computer, and all users in the Unix group math-solutions have permissions to use this directory. Solutions team members are encouraged to create their own subdirectories under /data for testing, and use the program admin/deploy-backend.sh to initialize it (for now, ask Anders). One (and only one) team member should configure crontab to run the backend programs automatically, see points (A) and (B) below. Other team members can use the Commands requiring cronenv.sh to carry out various tasks and for testing. The examples in this document use the directory /data/solutions, but it could be /data/whatever.

(A) Change the server and database used by the crontab programs

Edit the file /data/solutions/etc/crontab to change the environment variables LIVEHOST and LIVEDB, then install as new crontab file:

cd /data/solutions/etc
vim crontab
crontab < crontab

(B) Disable or change frequency of crontab programs

Disable daily backup of database:

cd /data/solutions/etc
mv cron.daily/70backup cron.disable

Re-enable backup:

cd /data/solutions/etc
mv cron.disable/70backup cron.daily

Change frequency of CSS download to every hour:

cd /data/solutions/etc
mv cron.4hours/50css cron.hourly

Commands requiring cronenv.sh

For the following things to work, first make sure to set the same environment variables as the programs started by cron will see:

source /data/solutions/bin/cronenv.sh

For example, this sets the variable $SOLHOME to /data/solutions.

(1) Check the log files

Either look at them in the directory $LOG:

less $LOG/formdata.log

Or use the program status.sh (in $SOLHOME/bin) to read a summary:

status.sh | less

(2) Run a crontab program immediately on LIVE database

Run form download:

cd $SOLHOME/etc/cron.15min
./30formdata

One-line version:

$SOLHOME/etc/cron.15min/30formdata

Run CSS download:

$SOLHOME/etc/cron.4hours/50css

(3) Run a crontab program on test database

Change these environment variables to reflect your wishes:

export LIVEHOST=math-sql2.sas.rutgers.edu
export LIVEDB=mathdb_test1

Then do the same as in (2):

$SOLHOME/etc/cron.15min/30formdata

(4) Connect to the database servers

The following command connects to the test MySQL server:

mysql --defaults-file=$SOLSECURE/mathdb.cnf \
      --host math-sql2.sas.rutgers.edu

You can see the hostname of the server you connected to with this SQL command:

select @@hostname;

(5) Restore database backup

Restore the (compressed) backup file mathdb-180910-231311.dump.gz to the database mathdb_test1 on math-sql2.sas.rutgers.edu as follows.

First delete all tables in the database:

mysql --defaults-file=$SOLSECURE/mathdb.cnf \
      --host math-sql2.sas.rutgers.edu

MariaDB [(none)]> drop database mathdb_test1;
Query OK, 104 rows affected (0.16 sec)

MariaDB [(none)]> create database mathdb_test1;
Query OK, 1 row affected (0.00 sec)

Then upload the backup database:

cd $SOLHOME/backup
zcat mathdb-180910-231311.dump.gz \
  | mysql --defaults-file=$SOLSECURE/mathdb.cnf \
          --host math-sql2.sas.rutgers.edu \
          --database mathdb_test1

Note: backspace “\” continues the command on next line in bash.