clean_q_aged.sh 744 B

123456789101112131415161718
  1. #!/bin/bash
  2. MAX_AGE=$(redis-cli --raw -h redis-mailcow GET Q_MAX_AGE)
  3. if [[ -z ${MAX_AGE} ]]; then
  4. echo "Max age for quarantine items not defined"
  5. exit 1
  6. fi
  7. NUM_REGEXP='^[0-9]+$'
  8. if ! [[ ${MAX_AGE} =~ ${NUM_REGEXP} ]] ; then
  9. echo "Max age for quarantine items invalid"
  10. exit 1
  11. fi
  12. TO_DELETE=$(mysql --socket=/var/run/mysqld/mysqld.sock -u __DBUSER__ -p__DBPASS__ __DBNAME__ -e "SELECT COUNT(id) FROM quarantine WHERE created < NOW() - INTERVAL ${MAX_AGE//[!0-9]/} DAY" -BN)
  13. mysql --socket=/var/run/mysqld/mysqld.sock -u __DBUSER__ -p__DBPASS__ __DBNAME__ -e "DELETE FROM quarantine WHERE created < NOW() - INTERVAL ${MAX_AGE//[!0-9]/} DAY"
  14. echo "Deleted ${TO_DELETE} items from quarantine table (max age is ${MAX_AGE//[!0-9]/} days)"