サーバー周りでよく変更されるデータやコンテンツはバックアップをとっていても設定ファイルはおろそかになりがちです。いざというときには最低限の設定ファイルだけでもバックアップしておくと万が一の際の復旧が楽になります。
#!/bin/sh FILE_LIST=() FILE_LIST+=( "/etc/httpd --exclude logs --exclude modules --exclude run" ) FILE_LIST+=( "/etc/my.cnf" ) FILE_LIST+=( "/etc/php.ini" ) FILE_LIST+=( "/etc/php.d" ) ESTIMATED_SIZE=0 ( i=0 IFS=$'\n' for e in ${FILE_LIST[@]}; do LINEPATH=`echo ${e} | sed -e "s/[ \t]\+/ /g" | cut -f1 -d' '` if [ -e $LINEPATH ]; then for line in `echo ${e} | xargs du -sb | sed -e "s/[ \t]\+/ /g" | cut -f1 -d' '` do ESTIMATED_SIZE=`expr ${ESTIMATED_SIZE} + ${line}` done else echo "[INFO] ${LINEPATH} does not exists. skipped." fi i=`expr ${i} + 1` done ESTIMATED_SIZE_RAW=${ESTIMATED_SIZE} ESTIMATED_SIZE_UNIT="byte" if [ ${ESTIMATED_SIZE} -gt 1024 ]; then ESTIMATED_SIZE=`expr ${ESTIMATED_SIZE} / 1024` ESTIMATED_SIZE_UNIT="K" fi if [ ${ESTIMATED_SIZE} -gt 1024 ]; then ESTIMATED_SIZE=`expr ${ESTIMATED_SIZE} / 1024` ESTIMATED_SIZE_UNIT="M" fi if [ ${ESTIMATED_SIZE} -gt 1024 ]; then ESTIMATED_SIZE=`expr ${ESTIMATED_SIZE} / 1024` ESTIMATED_SIZE_UNIT="G" fi echo "" read -p "バックアップ対象ファイルの合計サイズは ${ESTIMATED_SIZE}${ESTIMATED_SIZE_UNIT} です。/tmp 以下にバックアップファイルを作成しますか? (y/n) :" YN if [ "${YN}" = "y" ]; then : else exit 1; fi echo `date` > /tmp/backup_settings_date.txt tar -cf /tmp/backup_settings.tar /tmp/backup_settings_date.txt 2> /dev/null for e in ${FILE_LIST[@]}; do LINEPATH=`echo ${e} | sed -e "s/[ \t]\+/ /g" | cut -f1 -d' '` if [ -e $LINEPATH ]; then echo ${e} | xargs tar -rf /tmp/backup_settings.tar 2> /dev/null fi i=`expr ${i} + 1` done cd /tmp/ gzip backup_settings.tar cd - 2> /dev/null 1> /dev/null ls -lath /tmp/backup_settings* )