Linux定时的FTP上传任务

Linux  /  houtizong 发布于 3年前   142
今天碰到一个需求是这样的:
要定时将linux服务器的数据库日志文件和数据库备份文件上传到FTP上。
问题分析:
1、服务器分为两台,一台服务器在公司总部机房,一台分公司机房;
2、公司总部服务器采用Linux操作系统,作为FTP客户端
3、分公司服务器用Windows 2008操作系统,并且安装了Server-U作为FTP服务器端
4、两台服务器相对互相都是在外网
5、防火墙已经做好端口的配置
首先,自己上网找了些关于Linux上传文件到FTP的shell脚本:
脚本如下:
backup_Ymd=`date +%Y-%m-%d`echo "start time" $backup_YmdftpServer=xxxxxxxxxxx(外网的域名)ftpUser=username(FTP用户名)ftpPasswd=password(FTP密码)remoteDir=/mysql_log(FTP上存放目录)localDir=/home/mysql/logs(本地目录)/usr/kerberos/bin/ftp -niv <<!open $ftpServer [port]user $ftpUser $ftpPasswdbinarycd $remoteDirlcd $localDirmput *.zipbye!

编写完脚本之后,执行此脚本,发现出现了一些异常情况:
start time 2013-08-1410Connected to xxxxxxxxxxx.220 Serv-U FTP Server v6.4 for WinSock ready...500 'AUTH': command not understood.500 'AUTH': command not understood.KERBEROS_V4 rejected as an authentication typeRemote system type is UNIX.Using binary mode to transfer files.331 User name okay, need password.230 User logged in, proceed.200 Type set to I.250 Directory changed to /mysql_logLocal directory now /home/mysql/logslocal: 2013-08-1007.zip remote: 2013-08-1007.zip227 Entering Passive Mode (117,29,170,154,21,191)ftp: connect: Connection timed out221 Goodbye!

提示出现“227 Entering Passive Mode (117,29,170,154,21,191)”就出现连接超时的提示,无法传输文件。于是上网搜索此提示的相关信息,是连接模式选择不对,应当选用主动模式。所以,将FTP的pasv模式关闭即可!
#/bin/bashbackup_Ymd=`date +%Y-%m-%d`echo "start time" $backup_YmdftpServer=XXXXXXXXXftpUser=usernameftpPasswd=passwordremoteDir=/mysql_loglocalDir=/home/mysql/logs/usr/kerberos/bin/ftp -niv <<!open $ftpServer 29user $ftpUser $ftpPasswdpassive #关闭被动模式binarycd $remoteDirlcd $localDirmput $backup_Ymd.zipbye!

注:
1、IE浏览器访问方式---------被动模式
2、Linux字符连接---------------被动模式
3、Windows字符连接---------主动模式

IE的设置只要在“工具------Internet选项-----高级-------使用被动FTP(去掉勾选)”
Linux下更改为主动连接的方式:
[root@localhost ~]# ftp XXXXXXXXXConnected to XXXXXXXXXX.220 Serv-U FTP Server v6.4 for WinSock ready...500 'AUTH': command not understood.500 'AUTH': command not understood.KERBEROS_V4 rejected as an authentication typeName (center.gouyundong.net:root): username     331 User name okay, need password.Password:230 User logged in, proceed.Remote system type is UNIX.Using binary mode to transfer files.ftp> ls227 Entering Passive Mode (117,29,170,154,37,249)ftp> passivePassive mode off.ftp> ls200 PORT Command successful.


(补充Linux的Crontab的设置)
当脚本设置好,并且保存好后,就可以进入linux的crontab进行设置了。如果伙伴们不是很了解crontab的设置可以上网搜搜,或者查看crontab的帮助。

基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

man crontab
或者
crontalb --help

进入crontab的设置:
crontab -e30 7 * * * /usr/local/sbin/dblogsftp.sh:wq
设置为每天的7点30分执行
注:可以通过日志目录查看脚本是否执行,而执行结果是否正确就得看你的的目的是否达到。当然在编写完脚本之后可以先测试是否可以执行,结果是否是自己想要的!
检查目录为:/var/log
文件为:cron

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客