| #!/bin/sh -e |
| # Remove nightly archives older than one month (OS#4862) |
| echo "Redirecting all output to: /home/pkgmirror/rm-old-nightly-archives.log" |
| exec >"/home/pkgmirror/rm-old-nightly-archives.log" 2>&1 |
| |
| DRY=0 |
| |
| # Get removal date in seconds since epoch and display it |
| DATE_RM_SEC=$(expr $(date +%s) - 3600 \* 24 \* 365 \* 2) |
| DATE_RM_STR=$(date -d "@$DATE_RM_SEC" +"%Y-%m-%d") |
| echo "Removing nightly archives from $DATE_RM_STR and older (DRY=$DRY)" |
| |
| cd /downloads/obs-mirror |
| |
| for i in */nightly; do |
| # "Last modified" isn't set to the date of the dir name for some |
| # archives, so parse the date from the dir name instead |
| DATE_DIR="$(basename "$(dirname "$i")")" # e.g. "20210604-002301" |
| DATE_DIR_SEC="$(date -d "$(echo "$DATE_DIR" | cut -d "-" -f 1)" +%s)" |
| if [ -z "$DATE_DIR_SEC" ]; then |
| echo "ERROR: $i: failed to parse date from dir name" |
| continue |
| fi |
| |
| if [ "$DATE_DIR_SEC" -lt "$DATE_RM_SEC" ]; then |
| DATE_DIR_STR="$(date -d "@$DATE_DIR_SEC" +"%Y-%m-%d")" |
| echo "Removing $i ($DATE_DIR_STR)..." |
| if [ "$DRY" = 0 ]; then |
| rm -r "$i" |
| fi |
| fi |
| done |
| |
| echo "Done" |