对于linux的应用,对它有很多研究的人都会知道它的命令是很关键的。linux定时调度使用crontab命令操作就可以实现,但要把远程ftp目录文件拷贝到另外一台 ftp目录里面。有人建议A机控制B机去抓C机的ftp数据,但这样过于复杂,我们就需要一个sh脚步,就可以实现。
#!/bin/bash #file autobackup shell # # backupdir=/dbbackup/ waitfilename=/home/test/soft
ftpserver=172.1.1.2 ftpuser=test ftppasswd=test
ftpserver2=172.1.1.3 ftpuser2=test ftppasswd2=test
#------------------write the operater command to log file logfile=/var/log/_backup.log logtmp=/var/log/_mybackup.tmp
#===============================================
echo "start====================================>">>$logfile cd $backupdir tar czvf $backupdir$newfile $waitfilename >>$logfile 2>&1 echo "$backupdir$newfile Backup Success!" >>$logfile
if [ -z $ftpserver ];then echo "Ftp Server not set,Copy to Ftp Failed ..." >>$logfile exit 1 elif [ -z $ftpuser ];then echo "Ftp user not set, Copy to Ftp Failed ..." >>$logfile exit 2 elif [ -z $ftppasswd ]; then echo "Ftp password not set, Copy to Ftp Failed ..." >>$logfile exit 3 else echo "Start copy to Ftp server to local...." >> $logfile ftp -i -n <<end_ftp open $ftpserver user $ftpuser $ftppasswd lcd $waitfilename hash prompt mget *.* close bye end_ftp fi echo "back to other ftp server====================================>">>$logfile if [ -z $ftpserver2 ];then echo "Ftp Server2 not set,Copy to Ftp Failed ..." >>$logfile exit 4 elif [ -z $ftpuser2 ];then echo "Ftp user not set, Copy to Ftp Failed ..." >>$logfile exit 5 elif [ -z $ftppasswd2 ]; then echo "Ftp password not set, Copy to Ftp Failed ..." >>$logfile exit 6 else echo "Start copy local to other Ftp server ...." >> $logfile ftp -i -n <<end_ftp2 open $ftpserver2 user $ftpuser2 $ftppasswd2 lcd $waitfilename hash prompt mput *.* close bye end_ftp2 fi
echo "End=======================================">>$logfile
# the end of the auto backup script
把以上shell脚本保存成文件,并配成可执行的,配到crontab中即可实现自动备份。
写在最后:对于这个shell脚本自己不是科班出生可能还是很难写的,所以,在这里算是资源共享吧。
|