我的博客已迁移到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:[email protected]
#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< ${logfile} 2>&1