From 629dfa24ef7dca5069561f6ba66c4bb75e659645 Mon Sep 17 00:00:00 2001 From: Olaf Rempel Date: Sat, 17 Apr 2010 14:49:41 +0200 Subject: [PATCH] update backupscript --- full-system-backup/full-system-backup | 37 +++++++++++++++------------ 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/full-system-backup/full-system-backup b/full-system-backup/full-system-backup index 2df834d..df162cf 100755 --- a/full-system-backup/full-system-backup +++ b/full-system-backup/full-system-backup @@ -8,6 +8,8 @@ CONFIG="$1" [ -f "$CONFIG" ] || exit 1 DATE="$(date +%Y-%m-%d)" + +# $DATE must be the second field! (seperator=.) BACKUP_PREFIX="$(hostname).$DATE" umask 0077 @@ -93,7 +95,7 @@ storage_put() { calcold() { filelist="$1" keep="$2" - cut -d'.' -f2 $filelist > ${filelist}.dates + sed 's/.*\([[:digit:]]\{4\}-[[:digit:]]\{2\}-[[:digit:]]\{2\}\).*/\1/' $filelist > ${filelist}.dates date -d "-${keep}" "+%Y-%m-%d-XXX" >> ${filelist}.dates sort -r -u < ${filelist}.dates > ${filelist}.dates.uniq @@ -131,7 +133,7 @@ ftp) # ftp server echo "REMOTE_STORAGE: ftp://${REMOTE_STORAGE_HOST}/${REMOTE_STORAGE_PATH} (keep $REMOTE_STORAGE_KEEP)" >&2 ;; -ssh) # ssh / scp +ssh|scp) [ -z "$REMOTE_STORAGE_PATH" ] && REMOTE_STORAGE_PATH="." [ -n "$REMOTE_STORAGE_BANDWIDTH" ] && REMOTE_STORAGE_BANDWIDTH="-l $REMOTE_STORAGE_BANDWIDTH" echo "REMOTE_STORAGE: ssh://${REMOTE_STORAGE_HOST}:${REMOTE_STORAGE_PATH} (keep $REMOTE_STORAGE_KEEP)" >&2 @@ -183,26 +185,26 @@ for name in $BACKUPS; do mysql_schema_dump="/usr/bin/mysqldump ${auth} --opt --all --no-data" mysql_data_dump="/usr/bin/mysqldump ${auth} --opt --add-locks=FALSE --no-create-info" + created_mysql_files="" if [ -z "$db_list" ]; then db_list=$(echo "SHOW databases;" | $mysql_cmd) + + echo " privileges" >&2 + sql="SELECT DISTINCT CONCAT(\"'\", user, \"'@'\", host, \"'\") FROM mysql.user ORDER BY user, host;" + db_accounts=$(echo $sql | $mysql_cmd) + + for account in $db_accounts; do + sql="SHOW GRANTS FOR $account;" + echo "-- $sql" + echo $sql | $mysql_cmd + echo + + done >> ${tmpdir}/privileges.sql + created_mysql_files="privileges.sql" fi - echo " privileges" >&2 - sql="SELECT DISTINCT CONCAT(\"'\", user, \"'@'\", host, \"'\") FROM mysql.user ORDER BY user, host;" - db_accounts=$(echo $sql | $mysql_cmd) - - for account in $db_accounts; do - sql="SHOW GRANTS FOR $account;" - echo "-- $sql" - echo $sql | $mysql_cmd - echo - - done >> ${tmpdir}/privileges.sql - created_mysql_files="privileges.sql" - for db in $db_list; do echo " database $db" >&2 - $mysql_schema_dump --databases $db > ${tmpdir}/${db}-schema.sql $mysql_data_dump --databases $db > ${tmpdir}/${db}-data.sql created_mysql_files="$created_mysql_files ${db}-schema.sql ${db}-data.sql" @@ -281,7 +283,8 @@ ftp) echo -e "\nremoving old (> $REMOTE_STORAGE_KEEP) backups from REMOTE_STORAG done ;; -ssh) echo -e "\nremoving old (> $REMOTE_STORAGE_KEEP) backups from REMOTE_STORAGE" >&2 +ssh|scp) + echo -e "\nremoving old (> $REMOTE_STORAGE_KEEP) backups from REMOTE_STORAGE" >&2 ssh $REMOTE_STORAGE_HOST "cd ${REMOTE_STORAGE_PATH}; ls -1 $(hostname).*" > ${tmpdir}/remote.files remote_old_files=$(calcold ${tmpdir}/remote.files "$REMOTE_STORAGE_KEEP")