以下のことをやろうとしたら思いの外苦労した。
・VMのバックアップを取る
・バックアップファイルはファイルサーバに保存する
・ローカルではバックアップファイルは20日分保存する
参考までにスクリプトを貼ります。エラー処理とか全然してませんが。。
TODAY_DATE=`date '+%Y%m%d'` DAYS20_BEFORE_DATE=`date -v-20d '+%Y%m%d'` BACKUP_FILE_NAME=gitlabServerBackup BACKUP_FILE_NAME_WITH_DATE=$BACKUP_FILE_NAME$TODAY_DATE BACKUP_FILE_FOR_DELETE=$BACKUP_FILE_NAME$DAYS20_BEFORE_DATE BACKUP_DIR=/Users/usr/Desktop/GitlabBackup BACKUP_FILE_PATH=$BACKUP_DIR/$BACKUP_FILE_NAME.ova BACKUP_FILE_WITH_DATE_PATH=$BACKUP_DIR/$BACKUP_FILE_NAME_WITH_DATE.ova BACKUP_FILE_FOR_DELETE_PATH=$BACKUP_DIR/$BACKUP_FILE_FOR_DELETE.ova MOUNT_PATH=$BACKUP_DIR/mount FILE_SERVER_BACKUP_FILE_PATH=$MOUNT_PATH/GitlabBackup/$BACKUP_FILE_NAME.ova # VMを止めてバックアップをとる VBoxManage controlvm gitlabServer poweroff VBoxmanage export gitlabServer -o $BACKUP_FILE_PATH VBoxManage startvm gitlabServer # ファイルサーバにバックアップファイルをアップロード。容量が大きいのでファイルサーバには1世代分のみ保存する。 mount_smbfs //user:pass@server/folder $MOUNT_PATH cp $BACKUP_FILE_PATH $FILE_SERVER_BACKUP_FILE_PATH umount $MOUNT_PATH # バックアップファイルを世代管理する。20日前のバックアップファイルは削除する mv $BACKUP_FILE_PATH $BACKUP_FILE_WITH_DATE_PATH rm $BACKUP_FILE_FOR_DELETE_PATH