我的博客已迁移到xdoujiang.com请去那边和我交流 一、基础环境说明 1、版本 cat /etc/debian_version 5.0.1 2、vsftpd和redis-server安装 1)下载redis-server的deb包 axel -n 10 http://mirror.wh-stuttgart.net/apt-mirror/packages.dotdeb.org/dists/wheezy/redis/binary-amd64/redis-server_2.6.14-1~dotdeb.1_amd64.deb 2)安装redis-server dpkg -i redis-server_2.6.14-1~dotdeb.1_amd64.deb 3)安装vsftpd apt-get -y install vsftpd 3、redis部分配置信息 cat /etc/redis/redis.conf|egrep -v "^#|^$" |egrep "port|dbfilename|dir" port 6379 dbfilename dump.rdb dir /var/lib/redis 4、redis命令参考 http://redisdoc.com/ 5、ip 1)本机ip 10.1.10.133 2)ftp的ip 10.1.10.133 二、shell脚本 #!/bin/bash #-------------------------------------------------- #Created:2015-04-29 #Author:jimmygong #Mail:jimmygong@taomee.com #Function:backup redis && ftp #Version:1.0 #-------------------------------------------------- if [[ `id -u` -ne 0 ]] then echo "sctipts need root" exit 1 fi set -o nounset localip=`ifconfig eth0|awk '/inet addr:/'|awk -F: '{print $2}'|awk -F" " '{print $1}'` currdate=`date +%Y%m%d` redisdir="/var/lib/redis" redisfile="dump.rdb" redisport="6379" rediscmd="/usr/bin/redis-cli" redisbackupdir="/opt/redisbackup/${currdate}" redisbackuplog="/opt/redisbackuplog/" targz="${localip}.${redisfile}.tar.gz" ftphost="10.1.10.133" ftpport="21" ftpuser="ftpup" ftppass="ftpup" [[ -d ${redisbackupdir} ]] || mkdir -p ${redisbackupdir} [[ -e /usr/bin/nmap ]] || apt-get -y install nmap --force-yes > /dev/null 2>&1 echosucc () { echo "Ok" } echofail () { echo "Fail" exit 1 } function echoresult () { if [[ $? == '0' ]] then echosucc else echofail fi } function exportlog () { [[ -d ${redisbackuplog} ]] || mkdir -p ${redisbackuplog} logfile=${redisbackuplog}/${currdate}.${localip}.log exec > ${logfile} 2>&1 } function bgsave () { echo -n "Bgsave:" ${rediscmd} -h ${localip} -p ${redisport} bgsave > /dev/null 2>&1 echoresult } function backup () { echo -n "Targz:" cd ${redisdir} && cp ${redisdir}/${redisfile} ${redisbackupdir} cd ${redisbackupdir} && tar czf ${targz} ${redisfile} && rm -f ${redisbackupdir}/${redisfile} echoresult } function ftpcheck () { echo -n "FtpServer:" nmaphost=`nmap ${ftphost} -p ${ftpport}|grep "open"|wc -l` [[ ${nmaphost} -eq 1 ]] && echo "Ok" } function ftpcmd () { file=$1 ftp -in<<EOF open ${ftphost} user ${ftpuser} ${ftppass} cd 11 mkdir ${currdate} cd ${currdate} mkdir ${localip} cd ${localip} mput ${file} quit EOF } function ftpputfile () { ftpcheck echo -n "FtpFile:" cd ${redisbackupdir} for i in `ls` do ftpcmd $i done echoresult } function delete () { echo -n "Delete:" cd ${redisbackupdir} && find -name "*.tar.gz" -mtime +30|xargs -i {} rm -f echoresult } function ftpputlog () { cd ${redisbackuplog} ftp -in<<EOF open ${ftphost} user ${ftpuser} ${ftppass} cd 11 mkdir log cd log mput ${currdate}*.log quit EOF } exportlog bgsave backup ftpputfile delete ftpputlog exit 0 =============================说明============================================= 执行bash redis.sh ll /opt/redisbackup/20150429/ -rw-r--r-- 1 root root 148 2015-04-29 23:20 10.1.10.133.dump.rdb.tar.gz ll /opt/redisbackuplog/ -rw-r--r-- 1 root root 53 2015-04-29 23:20 20150429.10.1.10.133.log cat /opt/redisbackuplog/20150429.10.1.10.133.log Bgsave:Ok Targz:Ok FtpServer:Ok FtpFile:Ok Delete:Ok 再看ftp那边 ll /opt/backup/11/20150429/10.1.10.133/ -rw------- 1 ftpup ftpup 148 2015-04-29 23:20 10.1.10.133.dump.rdb.tar.gz ll /opt/backup/11/ 20150429/ log/ cat /opt/backup/11/log/20150429.10.1.10.133.log Bgsave:Ok Targz:Ok FtpServer:Ok FtpFile:Ok Delete:Ok shell的内置命令命令exec exec > ${logfile} 2>&1
备份redis服务并ftp上传(shell)
精选 原创
©著作权归作者所有:来自51CTO博客作者xdoujiang的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
shell脚本备份mysql并自动ftp到远程主机
shell脚本备份mysql并自动ftp到远程主机 #!/bin/bash
职场 mysql 数据库 休闲 shell脚本备份mysql并自动ftp -
linux计划任务自动备份并ftp上传脚本
linux计划任务自动备份并ftp上传脚本
linux计划任务 linux自动备份 ftp上传备份脚本 -
shell自动上传多份备份文件到FTP服务器
shell自动上传多份备份文件到FTP服务器
shell 自动上传 FTP -
linux下备份、打包、FTP上传的自动化SHELL脚本
linux下备份、打包、FTP上传的自动化SHELL脚本。按日期分文件夹备份,包括文件、数据等。可以通过ftp备份到远程服务器实现异地备份 01 02 03 04 05
备份 linux 打包 FTP上传 自动化SHELL脚本