У меня есть сценарий bash, который хорошо создает резервную копию моей базы данных по расписанию cron:
#!/bin/sh
PT_MYSQLDUMPPATH=/usr/bin
PT_HOMEPATH=/home/philosop
PT_TOOLPATH=$PT_HOMEPATH/philosophy-tools
PT_MYSQLBACKUPPATH=$PT_TOOLPATH/mysql-backups
PT_MYSQLUSER=*********
PT_MYSQLPASSWORD="********"
PT_MYSQLDATABASE=*********
PT_BACKUPDATETIME=`date +%s`
PT_BACKUPFILENAME=mysqlbackup_$PT_BACKUPDATETIME.sql.gz
PT_FILESTOKEEP=14
$PT_MYSQLDUMPPATH/mysqldump -u$PT_MYSQLUSER -p$PT_MYSQLPASSWORD --opt $PT_MYSQLDATABASE | gzip -c > $PT_MYSQLBACKUPPATH/$PT_BACKUPFILENAME
Проблема в том, что он будет продолжать сбрасывать резервные копии в папку, а не очищать старые файлы. Это где переменная PT_FILESTOKEEP
входит. Независимо от того, какое число это установлено, это количество резервных копий, которое я хочу сохранить. Все резервные копии имеют временную отметку, поэтому, упорядочив их по имени DESC, вы получите самую последнюю.
Может кто-нибудь помочь мне с остальной частью сценария BASH, чтобы добавить очистку файлов? Мои знания bash отсутствуют, и я не могу собрать воедино код, чтобы сделать все остальное.