实现通用的本地与远程数据备份SHELL脚本
2012-06-01 23:50:41 来源:我爱运维网 评论:0 点击:
备份工作是运维人员必须需要完成的,常规的,且极其重要的工作内容。备份操作常用于日常维护,升级,迁移,灾难恢复,一个通用的重要的备份...
运行的日志文件
BACKUP_LOG="$ROOT/backup.log"
BACKUP_LOG="$ROOT/backup.log"
# environment
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
###################
OS=`uname -s`
case $OS in
FreeBSD)
ECHO=/bin/echo
CAT=/bin/cat
GREP=/usr/bin/grep
AWK=/usr/bin/awk
HEAD=/usr/bin/head
TAR=/usr/bin/tar
GZIP=/usr/bin/gzip
WHICH=/usr/bin/which
FTP=/usr/bin/ftp
MD5=/sbin/md5
CHMOD=/bin/chmod
SCP=/usr/bin/scp
;;
SunOS)
ECHO=/usr/bin/echo
CAT=/usr/bin/cat
GREP=/usr/bin/grep
AWK=/usr/bin/awk
HEAD=/usr/bin/head
TAR=/usr/bin/tar
GZIP=/usr/local/bin/gzip
WHICH=/usr/bin/which
FTP=/usr/bin/ftp
MD5=/usr/local/bin/md5
CHMOD=/usr/bin/chmod
SCP=/usr/local/bin/scp
;;
Linux)
ECHO=/bin/echo
CAT=/bin/cat
GREP=/bin/grep
AWK=/bin/awk
HEAD=/usr/bin/head
TAR=/bin/tar
GZIP=/bin/gzip
WHICH=/usr/bin/which
FTP=/usr/bin/ftp
MD5=/usr/bin/md5sum
CHMOD=/bin/chmod
SCP=/usr/bin/scp
;;
*)
echo 'only support FreeBSD/SunOS/Linux'
exit
;;
esac
if [ ! -d $ROOT ]
then
$ECHO "请定义程序运行的ROOT!"
exit
fi
if [ ! "$BASE" ]
then
echo "定义需要备份的数据,请配置BASE变量!"
exit
fi
HOST="`$CAT /etc/hosts | $GREP -i \`hostname\` | $GREP -v \"^#\" | $HEAD -1 | $AWK '{print $1}'`"
LOCAL_DIR="${ROOT}/bak_data"
REMOTE_DIR="bak_data"
if [ ! -d $LOCAL_DIR ];then
mkdir $LOCAL_DIR
fi
cd $LOCAL_DIR
BACKUP_FILE="${HOST}_data.$DATE.tar.gz"
$TAR cf - $BASE --exclude=$EXFILE | $GZIP -qc > $BACKUP_FILE
$CHMOD 644 $BACKUP_FILE
chown -R backup.backup ${BACKUP_FILE}
su - backup -c "$SCP -r
上一篇:活用awk高效进行文本或日志分析处理
下一篇:有用的Nginx日志分析awk脚本
分享到:
收藏