ユーザ用ツール

サイト用ツール


bash:script:24_backup_shell

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
bash:script:24_backup_shell [2022/01/21 11:29] matsuibash:script:24_backup_shell [2022/08/11 02:16] (現在) matsui
行 1: 行 1:
-====== 24 バックアップシェル ======+====== 24 バックアップシェル(backup.sh) ======
  
 Cronでバックアップ用シェルのメモ Cronでバックアップ用シェルのメモ
行 7: 行 7:
  
 BACKUP_DIR=/home/backups BACKUP_DIR=/home/backups
-BACKUP_LIST=/home/backups/conf+BACKUP_LIST=${BACKUP_DIR}/conf
 TAR_OP="--sparse --one-file-system -zcp --numeric-owner --xattrs ." TAR_OP="--sparse --one-file-system -zcp --numeric-owner --xattrs ."
 usage_exit() { usage_exit() {
行 71: 行 71:
     echo "============="     echo "============="
     period_check $PERIOD     period_check $PERIOD
-    BK_DIR=$BACKUP_DIR/$BAKHOST/$PERIOD/$PDIR+    BK_DIR=$BACKUP_DIR/$LIST/$PERIOD/$PDIR
  
-    for LINE in `cat $BKLIST`+    #for LINE in `cat $BKLIST` 
 +    while read LINE
     do     do
 +        if [ "${LINE:0:1}" == "#" -o -z "${LINE}" ];then
 +            continue
 +        fi
 +
 +
         echo "backup: $LINE"         echo "backup: $LINE"
         DIR=${LINE%:*}         DIR=${LINE%:*}
行 80: 行 86:
         dir_check $BK_DIR         dir_check $BK_DIR
  
-        if [ "${DIR: -1}" == '/' ];then+        if [ "${DIR}" == 'mysql' ];then 
 + 
 +            dir_check $BK_DIR/DB 
 +            if [ "${FILE_NAME}" == "all" ];then 
 +                ssh $BAKHOST "mysqldump --all-databases " | gzip | cat > $BK_DIR/DB/all.sql.gz 
 +            else 
 +                ssh $BAKHOST "mysqldump ${FILE_NAME} " | gzip | cat > $BK_DIR/DB/$FILE_NAME.sql.gz 
 +            fi 
 +        elif [ "${DIR: -1}" == '/' ];then
             ##ssh $BAKHOST "tar -C $DIR $TAR_OP" cat > $BK_DIR/$FILE_NAME.tar.gz             ##ssh $BAKHOST "tar -C $DIR $TAR_OP" cat > $BK_DIR/$FILE_NAME.tar.gz
-            echo "rsync -$BAKHOST:$DIR $BK_DIR/$FILE_NAME/" +            echo "rsync -aSH --inplace $BAKHOST:$DIR $BK_DIR/$FILE_NAME/" 
-            rsync -$BAKHOST:$DIR $BK_DIR/$FILE_NAME/+            rsync -aSH --inplace $BAKHOST:$DIR $BK_DIR/$FILE_NAME/
         else         else
-            echo "rsync -$BAKHOST:$DIR $BK_DIR/$FILE_NAME" +            echo "rsync -aSH --inplace $BAKHOST:$DIR $BK_DIR/$FILE_NAME" 
-            rsync -$BAKHOST:$DIR $BK_DIR/$FILE_NAME+            rsync -aSH --inplace $BAKHOST:$DIR $BK_DIR/$FILE_NAME
         fi         fi
-    done+    done < $BKLIST
 } }
  
行 96: 行 110:
 </code> </code>
  
 +
 +===== conf file =====
 +
 +
 +<code>
 +# cat /home/backups/conf/host_name
 +
 +## directory rsync 
 +/var/www/vhost/:vhost
 +
 +## file rsync
 +/var/spool/cron/root:cron_root
 +
 +## mysqldump all
 +mysql:all
 +
 +## mysqldump each db
 +#mysql:hogedb
 +
 +</code>
 +
 +===== Cron =====
 +
 +<code>
 +# crontab -l
 +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
 +
 +10 0 * * * backup.sh -H root@hogehost -l hogehost -p day > /var/log/backup_day.log 2>&1
 +10 1 1 * * backup.sh -H root@hogehost -l hogehost -p month > /var/log/backup_month.log 2>&1
 +
 +## hosts に書いておくパターン
 +10 0 * * * backup.sh -H hogehost -p day > /var/log/backup_day.log 2>&1
 +10 1 1 * * backup.sh -H hogehost -p month > /var/log/backup_month.log 2>&1
 +
 +</code>
 {{tag>shell}} {{tag>shell}}
bash/script/24_backup_shell.1642764543.txt.gz · 最終更新: 2022/01/21 11:29 by matsui