自动备份到远程FTP的脚本 备忘

设置crontab,每天凌晨00:00切割备份文件 crontab -e
增加以下内容
00 00 * * * /bin/bash /home/back.sh

back.sh内容如下(可直接参考附件)
beifen.sh
#!/bin/bash
# FTP backup transfer script 自动备份到远程FTP的脚本
# For Use to transfer backup file to FTP Server
##FTP 设置ftp服务器地址 用户名及密码
hostip=”ftp.backup.clin003.com”
##time
today=`date +%Y%m%d`
##FTP user passwd

fusername=”ftpuser”
fpasswd=”123456″
##本地备份文件存放的目录
basedir=”/home/clin003.com/backup”
##远程FTP的相对目录
remodir=”/bak”

#需要备份的文件名
filename=”$today”_www.zip
filename2=”$today”_data.zip
filename3=”$today”_all.zip
cd $basedir

#log
echo “$today” DB1 Backup >> “$basedir”/backup.log
echo “$today” DB1 Backup >> “$basedir”/backup_err.log
##tar log to tgz
#zip 压缩内容目录到备份文件,并输出日志
zip -q -r -S “$today”_www.zip /home/www/ > “$basedir”/backup.log 2> “$basedir”/backup_err.log
zip -q -r -S “$today”_data.zip /home/www/clin003.com/data/ > “$basedir”/backup.log 2> “$basedir”/backup_err.log
#tar -zcvf $filename3 $basedir > “$basedir”/backup.log 2> “$basedir”/backup_err.log
####
##
##使用ncftpput命令上传到远程ftp服务器
ncftpput -u “$fusername” -p “$fpasswd” “$hostip” “$remodir” “$filename” >> “$basedir”/backup.log 2>> “$basedir”/backup_err.log
ncftpput -u “$fusername” -p “$fpasswd” “$hostip” “$remodir” “$filename2” >> “$basedir”/backup.log 2>> “$basedir”/backup_err.log
#ncftpput -u “$fusername” -p “$fpasswd” “$hostip” “$remodir” “$filename3” >> “$basedir”/backup.log 2>> “$basedir”/backup_err.log
## 发送备份日志 文件到邮箱,如果你装有sendmail的话。
#mail -s “$today_ Backup List ” hi@clin003.com < “$basedir”/backup.log

#nohup ncftpget -R -u user -p password clin003.com /rdir /ldir/ &

############

安装zip命令

apt-get install zip
apt-get install rar

安装ncftp命令
apt-get install ncftp

ncftpput使用
参考http://clin003.com/linux/ftp-command-not-found-2432/

nohup命令介绍
Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。但是如果终端关闭,那么程序也会被关闭。但是为了能够后台运行,那么我们就可以使用nohup这个命令。

nohup 命令

用途:不挂断地运行命令。

语法:nohup Command [ Arg … ] [ & ]

描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。

One Reply to “自动备份到远程FTP的脚本 备忘”

Comments are closed.