Rename instead of delete outdated exam-user directories on localhome-clients
Exam mode don't collect home-directories on localhome clients. Deleting home of exam-users will result in potential data loss. But keeping the home under the same name will prevent new exam at the next day. Solution: Rename home (and /lmn/media/) of user after 12h and delete after 10d.
This commit is contained in:
parent
727922f152
commit
39da308ff7
3 changed files with 27 additions and 4 deletions
16
roles/lmn_localhome/files/rmexam
Executable file
16
roles/lmn_localhome/files/rmexam
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/usr/bin/bash
|
||||
#
|
||||
# rename -exam directories in /home and /lmn/media older than 12h
|
||||
# remove -exam.* directories in /home and /lmn/media older than 10d
|
||||
#
|
||||
|
||||
set -eu
|
||||
|
||||
for dir in /home/ /lmn/media ; do
|
||||
if [[ -d "${dir}" ]]; then
|
||||
find "${dir}" -maxdepth 1 -mindepth 1 -name '*-exam' -type d -cmin +720 \
|
||||
-exec bash -c 'mv "$0" "$0".$( date +%Y%m%d-%H%M --reference="$0" )' {} \;
|
||||
find "${dir}" -maxdepth 1 -mindepth 1 -name '*-exam.*' -type d -cmin +14400 \
|
||||
-exec rm -rf {} \;
|
||||
fi
|
||||
done
|
|
@ -1,6 +1,6 @@
|
|||
[Unit]
|
||||
Description=Remove -exam homes older than 12h
|
||||
Description=Rename/Remove -exam directories older than 12h/10d
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=find /home/ -maxdepth 1 -mindepth 1 -name '*-exam' -type d -cmin +720 -exec rm -rf {} \;
|
||||
ExecStart=/usr/local/sbin/rmexam
|
||||
|
|
|
@ -34,8 +34,15 @@
|
|||
content: |
|
||||
[[ "${UID}" -gt 10000 ]] && ! findmnt "/lmn/media/${USER}/home" > /dev/null && exit 0
|
||||
|
||||
- name: Provide rmexam script
|
||||
ansible.builtin.copy:
|
||||
src: rmexam
|
||||
dest: /usr/local/sbin/
|
||||
mode: 0755
|
||||
when: "'teacherlaptop' not in group_names"
|
||||
|
||||
- name: Provide rmexam services and timers for some scripts
|
||||
copy:
|
||||
ansible.builtin.copy:
|
||||
src: "{{ item }}"
|
||||
dest: "/etc/systemd/system/{{ item }}"
|
||||
mode: 0644
|
||||
|
@ -45,7 +52,7 @@
|
|||
when: "'teacherlaptop' not in group_names"
|
||||
|
||||
- name: Enable rmexam.timer
|
||||
systemd:
|
||||
ansible.builtin.systemd:
|
||||
name: rmexam.timer
|
||||
enabled: true
|
||||
when: "'teacherlaptop' not in group_names"
|
||||
|
|
Loading…
Add table
Reference in a new issue