{ ... }: { services.cron = { enable = true; systemCronJobs = [ # Backups to nuc-server ''0 0 * * * root rsync --delete -avr /Storage/Data/Docker/sysctl.io/ root@nuc-server:/Storage/Data/Docker/sysctl.io/'' ''0 3 * * * root rsync -avr /Storage/Data/Docker/sysctl.io/nextcloud/html/data/albert/files/InstantUpload/ root@nuc-server:/Storage/Media/Pictures/InstantUpload/'' ''0 5 * * * root rsync -avr /Storage/Data/Docker/sysctl.io/nextcloud/html/data/albert/files/Wallpapers/ root@nuc-server:/Storage/Media/Pictures/Wallpapers'' # Back up the docker containers monthly: ''@monthly root ssh nuc-server "rm -rf /Storage/Backups/Docker/sysctl.io/*"; for i in $(docker ps --format '{{.Names}}'); do docker export $i | gzip -cf | ssh root@nuc-server "cat > /Storage/Backups/Docker/sysctl.io/$i.tar.gz"; done'' # Run the ClamAV scan ''@monthly root /Storage/Data/docker-compose/sysctl.io/scripts/clamscan-cron.sh'' # Archive Loki logs monthly ''@monthly root /Storage/Data/docker-compose/sysctl.io/scripts/backup-logs.sh >> /Storage/Data/Temporary/log_backups.log'' # Run the Nextcloud cronjobs hourly ''@hourly root docker exec -uwww-data nextcloud php -f /var/www/html/cron.php'' # Run the Pixelfed scheduler ''* * * * * root docker exec pixelfed-app php artisan schedule:run'' # Update / CLean Mastodon caches ''@daily root docker exec mastodon-web tootctl preview_cards remove --days 7'' ''@daily root docker exec mastodon-web tootctl media remove --days 7 --prune-profiles'' ''@daily root docker exec mastodon-web tootctl accounts prune'' ''@daily root docker exec mastodon-web tootctl statuses remove --days 7'' ''@daily root docker exec mastodon-web tootctl media remove --remove-headers --include-follows --days 7'' ''@daily root docker exec mastodon-web tootctl preview_cards remove --days 7'' ''@daily root docker exec mastodon-web tootctl media remove-orphans'' ]; }; }