Multiple Exam Accounts

Purpose

Distribute “work” directories across multiple file servers.

Work directories are students homes in the exam environment.

The invigilator coordinator orchestrates reading time to start simultaneously.

The simultaneous logging in, cause lag (~5 mins) in starting the desktop and displaying the exam paper.

Staggering start times would alleviate the slowness but difficult to coordinate.


Scripts

Multiple accounts increase exam set up and administration times. There are a few scripts to assist.

 

 

 

 

/home/give/stable/bin/

create-vx-accounts <class_acct> {home_path}

Not a priv script. Requires root to run the script.

Creates the accounts and the guest account

  • <class>vx, <class>vx{1..N}

  • <class>exam, <class>exam{1..N}

  • <class>guest

<class>guest account is used when the student forgot their zPass.

Invigilator logs in with the username “noauth:zID” (on behalf of the student) and the password for the guest account.

log into <class>vx → ssh into <class>exam → vxstart

log into <class>vxN → ssh into <class>examN → vxstart

Uses same exam configuration.

Distribute accounts based on precinct. Example:

  • vx/exam = Mech Eng

  • vx1/exam1 = K17

  • vx2/exam2 and vx3/exam3 = J17Lvl3

  • vx4/exam4 = K14/K15

Example:

/home/give/stable/bin/create-vx-accounts cs1511 /import/{adams,kamen,cage,reed,ravel}/A

/home/give/stable/bin/

prac-rsync-vx <exam_acct> <fr_path> [<to_path>]

rsync files under “class” and “etc” directories. ssh into one of the examN account first.

Don’t need to create ssh keys for each examN account to add to the main exam account.

However, need to start and forward ssh-agent and add passphrase using ssh-add

  1. eval $(ssh-agent)

  2. ssh-add ~/.ssh/id_rsa

  3. ssh -A <class>examN@localhost

omit -A by adding "ForwardAgent yes" to .ssh/config

omit 1 and 2 by adding them to .xsession

Example:

ssh -A cs1511exam2@localhost ~give/stable/bin/prac-rsync-vx cs1511exam "exams/23T3supp"

/home/give/stable/bin/

copy-work-from-multiple-vx

Arguments

  1. class account

  2. exam name, not the exam path

  3. wildcard of files to copy e.g. *.c

  4. destination directory

  5. rsync options (optional), use -v for verbose or -vn for verbose and testmode

Copies submissions from all the work directories.

Example:

/home/give/stable/bin/copy_exam_work.sh cs9021 24T1final "question*.py" final -v

 

/home/give/stable/bin/

find-work-in-multiple-vx <class_acct> <zID>

Find which exam account has the work directory(s) for a given zID