Need help understanding a back-up script
Hello everyone!
I had a container with a DB crap itself yesterday so I’m trying to speed up my learning to back up stuff.
I came across a script that taught me how to back-up a containerized postgres db at given intervals and it works. I managed to create db dumps and restore them. I’ve documented everything and now my whole docker-compose/env etc are on git control.
There’s one part of the script I don’t decypher but I’d like to maybe change it. It is about the number of back-up copies.
Here’s the line from the tutorial: ls -1 /backup/*.dump | head -n -2 | xargs rm -f
Can someone explain to me what this line does? I’d like to keep maybe 3 copies just in case the auto-backup backs up a rotten one.
Thanks!
Full code below:
<span style="color:#323232;">backup:
</span><span style="color:#323232;"> image: postgres:13
</span><span style="color:#323232;"> depends_on:
</span><span style="color:#323232;"> - db_recipes
</span><span style="color:#323232;"> volumes:
</span><span style="color:#323232;"> - ./backup:/backup
</span><span style="color:#323232;"> command: >
</span><span style="color:#323232;"> bash -c "while true; do
</span><span style="color:#323232;"> PGPASSWORD=$$POSTGRES_PASSWORD pg_dump -h db-postgresql -U $$POSTGRES_USER -Fc $$POSTGRES_DB > /backup/$$(date +%Y-%m-%d-%H-%M-%S).dump
</span><span style="color:#323232;"> echo ""Backup done at $$(date +%Y-%m-%d_%H:%M:%S)""
</span><span style="color:#323232;"> ls -1 /backup/*.dump | head -n -2 | xargs rm -f
</span><span style="color:#323232;"> sleep 86400
</span><span style="color:#323232;"> done"
</span>