Solutions Backend Programs¶
Several backend programs are executed on a periodic schedule to maintain the Solutions database. This document explains how Solutions users with sufficient permissions can execute specific backend tasks whenever this is required.
IMPORTANT: The backend programs will do what you ask for as fast as possible, without any warnings about potential dangers. It is recommended that you review this document before using the programs. In addition, before you hit the ENTER key after typing a command, please read through what you have typed to check that everything is spelled correctly and the whole line is as intended.
Setup¶
The backend programs are installed on the Linux host
math-apps1.sas.rutgers.edu
, so you need to login to this computer to use
them:
ssh math-apps1.sas.rutgers.edu
The first time you login, you also need to setup some information required by the programs. This is done by entering these commands:
PATH=$PATH:/home/msolutions/bin
setup-secure
You can rerun the setup-secure
command any time your information changes.
Backend programs¶
After you have executed setup-secure
, you will be able to use the commands
listed in this section. Many of these commands can accept options that modify
their behavior. In particular, many commands accept the option --help
,
which causes them to print the list of all options they accept and terminate
without doing anything else. For example, the following will print the options
accepted by the rpscan
command:
rpscan --help
The commands that accept the --help
option are marked with [--help]
in
the list below. If you use a command without specifying any options, then it
will be executed with the same parameters as when it is executed automatically
by the system.
List of commands¶
status
Print a summary of the backend log files.
sql1 [--help]
Login to the LIVE database server
math-sql1.sas.rutgers.edu
.sql2 [--help]
Login to the TEST database server
math-sql2.sas.rutgers.edu
.dslogin
Login to Rutgers Data Services.
backup
Create a backup copy of all tables in the Solutions database. The backup copy will be stored in the subdirectory
backup
of your home directory (that is,/home/netid/backup
with your netid substituted). This subdirectory will be created if it does not exist.old2new [--help]
Translate some tables from Access-Solutions to Python-Solutions version, for example tbl1_People to people.
copy2sql [--help]
Copy the most important log files to the database table logfiles, so that they are visible in
LogViewer
.getforms [--help]
Connect to Joomla Administrator to download the information collected by the Joomla forms. (No longer used.)
copyforms
Copy the information collected by Joomla forms from Joomla database tables provided by SAS-IT.
rpscan [--help]
Import new student requests into the database, so that they are visible in
RequestPortal
. This program uses the information collected bycopyforms
.getdataservices [--help]
Download information from Rutgers Data Services, including course schedules and information about buildings and rooms.
mkschedule [--help]
Generate an HTML schedule of all mathematics courses. The html files will be stored in the subdirectory
schedule
of your home directory. This subdirectory will be created if it does not exist, and all files in thisschedule
subdirectory will be deleted each time mkschedule is executed.copyschedule
Copy the schedule files generated by
mkschedule
to iw3.math.rutgers.edu. They will then be visible at the URL https://iw3.math.rutgers.edu/schedule/.getcssinfo [--help]
Collect the information available from the course list on the CSS website and store it in the database table :ref:css_info`. This table is used to show projected enrollments in
RequestPortal
.getcss [--help]
Collect the information available when viewing or editing the individual courses on the CSS website and store it in the database table css_sections.
putcss [--help]
Update instructors on the CSS website to match those in the database table css_upload. No changes will be made if css_upload contains a copy of css_sections (assuming that
getcss
has just been run and no changes have been made on the CSS website).fixcss
Attempt to work around errors in Access-Solutions by changing fields in css_upload. This includes removing instructors with netid
TBD
and trying to fix the mode codes.checkcss [--help]
Check if the data in css_sections satisfies a list of rules, warn about violations. The warnings will show up in
checkcss.log
inLogViewer
.getfinals [--help]
Download the finals schedule and store it in the database table exam_schedule.
getsummer [--help]
Download the summer session schedule and store it in the database table summer_section_dates_inbound, which is used by the Access
ControlCenter
.
Finding information about the backend programs¶
To figure out which programs are executed automatically, and at which times, you
can inspect the files in /home/msolutions/etc
and its subdirectories. The
relevant subdirectories have names starting with cron.
. You can see the
list by typing:
ls /home/msolutions/etc
Show which commands are executed every 15 minutes:
ls /home/msolutions/etc/cron.15min
Show which commands are executed every day at around 1 AM:
ls /home/msolutions/etc/cron.daily01
Show exactly when the programs in each directory are scheduled to run:
cat /home/msolutions/etc/crontab
In the table printed by this command, the first column determines the minute and the second column determines the hour.
Recipes¶
This section describes some procedures that can be used to carry out specific maintenance tasks.
Clear CSS instructors¶
To clear all instructors in CSS for subject code 01:640 in Fall 2020, enter the
following commands in order. You can optionally execute getcss
first if you
suspect that the table css_sections is out of date. Please avoid using
this procedure around 5 AM in the morning, since at that time it may conflict
with the automatic CSS sync:
sql1 -D mathdb -e "delete from css_upload"
sql1 -D mathdb -e "insert into css_upload select * from css_sections"
sql1 -D mathdb -e "update css_upload set netid1=NULL, netid2=NULL"
putcss 9-2020:01:640 --dry-run
putcss 9-2020:01:640
sql1 -D mathdb -e "delete from css_upload"
Note: The option --dry-run
will cause putcss
to show the intended
changes to CSS without carrying them out. This is useful for making sure that
you agree with the changes before the second putcss
command is executed.
The dry-run command can be skipped if you are confident that everything is fine.
Note: Do not forget to enter the semester-subject argument (9-2020:01:640
).
If no such argument is given, then putcss
will operate on all semesters that
Solutions is currently working on and clear the instructors in all these
semesters.
If you only want to clear the instructors of some courses, then use the
--courses
option to putcss
. For example:
putcss 9-2020:01:640 --courses 250,300-311 --dry-run
putcss 9-2020:01:640 --courses 250,300-311