Управление еженедельными резервными copyми

Я написал сценарий, который берет MySQL дампов и загружает его в Amazon S3. Я добавил скрипт к cronjob, и он запускается в 2 часа ночи в полночь и загружает дамп MySQL в S3. Я использую дату и time в качестве имени fileа, прежде чем загружать его на S3.

Моя проблема в том, что мне нужно управлять резервными copyми 7 дней на S3, и автоматически мне нужно удалить file резервной копии 8-го дня из S3, так как я использую отметку даты и времени в качестве имени fileа, чтобы сделать каждый file уникальным, я не могу понять как это сделать.

А также я должен восстановить последнюю резервную копию в другом экземпляре EC2.

date может помочь вам разобраться с правильным 7-дневным именем fileа:

$ date -I 2011-12-03 0 [email protected]:~ $ date -I -d '7 days ago' 2011-11-26 

Используйте следующий скрипт для вращения резервных копий через N дней:

 #!/bin/bash if [ "$#" == "0" ];then echo "$0 upper-limit path {command}" exit 1 fi ### SSH Server setup ### SSH_USER="vivek" SSH_SERVER="nas.nixcraft.in" START=7 DIR_FORMAT="%d-%m-%Y" # DD-MM-YYYY format #DIR_FORMAT="%m-%d-%Y" #MM-DD-YYYY format ## do not edit below ## LIMIT=$( expr $START + $1 ) ## default CMD ## CMD="ls" SSH_PATH="." [ "$3" != "" ] && CMD="$3" || : [ "$2" != "" ] && SSH_PATH="$2" || : DAYS=$(for d in $(seq $START $LIMIT);do date --date="$d days ago" +"${DIR_FORMAT}"; done) for d in $DAYS do ssh ${SSH_USER}@${SSH_SERVER} ${CMD} ${SSH_PATH}/$d done 

Этот скрипт нуждается в некоторой модификации, я взял его отсюда.

http://www.cyberciti.biz/tips/ssh-rotate-backup-shell-script.html

Вы можете прочитать полную статью, чтобы понять ее и изменить ее в соответствии с вашими потребностями.

Помимо всего этого, я бы рекомендовал использовать резервную копию Rsnaphot или Bacula для автоматического резервного копирования и восстановления.

Если вам нужны только 7 дней резервных копий, вы можете использовать «день недели» (% A или% a) или число «день недели» (% w) с датой и позволить загрузке S3 replace file прошлой недели.

 FILENAME=$(date '+%A.sql') mysqldump > $FILENAME 
  • синтаксическая ошибка рядом с неожиданным токеном `then '
  • Автоматический запуск сценария оболочки во time загрузки (Ubuntu)
  • как разместить fileы в ram
  • Linux (RedHat); Crontab; bash - скрипт, работающий из оболочки, но не в Crontab - назначение команды переменной не выполняется
  • Запустить проигрыватель VMware в режиме оболочки?
  • Как скопировать это с помощью command line Unix / Linux?
  • Шифрование сценария оболочки
  • Очередь оболочки в Linux?
  • Простой выход сигнала?
  • Изменение оболочки по умолчанию
  • HOw, чтобы разрешить input в систему для определенного пользователя в один ip
  • Давайте будем гением компьютера.