blob: 17c0f6e0469fc21835472dadb616c5985447b853 (
plain)
- #!/bin/sh
- set -e
- exit1() (
- echo >&2 "ERROR: $1"
- exit 1
- )
- warn() (
- echo >&2 "WARNING: $1"
- )
- backupdeluser() {
- set -e
- u="$1"; shift
- p=/var/backups/users-dropped/
- getent passwd "$u" > "$p/$u.getent"
- getent group "$u" >> "$p/$u.getent"
- deluser --remove-home --backup --backup-to "$p" "$u"
- }
- maybestaleuser() {
- warn "Skipping possibly non-stale account for user $user"
- }
- untouchedinbox() {
- set -e
- h="$1"; shift
- [ -d "$home/Maildir" ]
- find "$home/Maildir/new" -maxdepth 0 -type d -mtime +365 | grep -q .
- find "$home/Maildir/cur" -maxdepth 0 -type d -mtime +365 | grep -q .
- }
- untouchednewmail() {
- set -e
- h="$1"; shift
- [ -d "$home/Maildir" ]
- find "$home/Maildir/new" -type f -mtime +365 | grep -q
- }
- for user in $@; do
- home=$(getent passwd "$user" | cut -d: -f6)
- [ -n "$home" ] || exit1 "Failed resolving homedir for user $user"
- if [ -e "$home/.forward" ]; then
- maybestaleuser "$user"
- continue
- fi
- if untouchedinbox "$home" || untouchednewmail "$home"; then
- backupdeluser "$user"
- continue
- fi
- maybestaleuser "$user"
- done
|