expect自动上传目录到FTP服务器
2016-11-18 09:13
225 查看
客户需求:在/home/installer目录下会每天生成一个目录(日期格式),需要每天定时把这些目录上传到云服务器指定目录下(FTP)
思路:crontab添加任务计划,需要自动登录ftp服务器,所以需要expect来自动输入账号密码,
解决方案:
1:下载所需要的工具包:expect,lftp(直接yum下载即可,此步忽略)
2:编辑expect脚本,vim /home/install/back.expect
0 22 * * * /usr/bin/expect /home/installer/back.expect
4:然后启动任务计划
/etc/init.d/crontab start
思路:crontab添加任务计划,需要自动登录ftp服务器,所以需要expect来自动输入账号密码,
解决方案:
1:下载所需要的工具包:expect,lftp(直接yum下载即可,此步忽略)
2:编辑expect脚本,vim /home/install/back.expect
#!/usr/bin/expect set FTP_IP 192.168.1.10 set user installer set passwd installer set timeout 15 set date [ exec date +%F ] # 引用date时间,要不然无法获取每天日期 set seven_ago [ exec date -d "+7 day ago" +%F ] # 获取7天前日期,做定时删除用,"+7 day ago"必须用双引号,否则会出错 set ftp_dir /home/install/back set local_dir /home/install spawn /usr/bin/lftp $user:$passwd@$FTP_IP expect { # 切换到需要备份到ftp的目录 "*@$FTP_IP:~>" send { "cd $ftp_dir\r" } } expect { # 上传本地目录里的当天目录,-c是续传,-R是上传,-e是同步上传的目录里面数据,-L是把软链接内容上传 "*$ftp_dir>" send { "mirror -RLec $local_dir/$date\r" } } expect { # 上传本地目录里的ZIP文件 "*$ftp_dir>" send { "put $local_dir/$date\r" } } expect { # 删除ftp目录里7天前的目录 "*$ftp_dir>" send { "rm -rf $seven_ago\r" } } expect eof exit3:将脚本写到任务计划里,比如每天晚上10点上传
0 22 * * * /usr/bin/expect /home/installer/back.expect
4:然后启动任务计划
/etc/init.d/crontab start
相关文章推荐
- python写的备份mysql自动上传ftp服务器
- FlashFTP工具的自动缓存服务器目录的功能
- bat脚本自动上传文件到Linux FTP服务器上
- 备份部分mysql表并上传至指定ftp服务器目录中
- mysql自动备份数据库,同时ftp上传到指定服务器
- Linux VPS/服务器 网站及数据库自动本地备份并FTP上传备份脚本
- linux下自动备份脚本并上传到ftp服务器
- CaptainGan------使用递归方法实现,向FTP服务器上传整个目录结构、从FTP服务器下载整个目录到本地的功能
- 利用Windows Service,定时监控某一目录,发现新文件后自动上传到指定web服务器
- 备份部分mysql表并上传至指定ftp服务器目录中 推荐
- Linux VPS/服务器 网站及数据库自动本地备份并FTP上传备份脚本
- Windows下通过bat脚本实现自动上传文件到ftp服务器
- python 自动备份mysql数据库并上传到FTP服务器上
- C# FTP 自动创建目录/上传文件
- 一款能够自动上传文件到ftp服务器的软件
- Linux VPS/服务器 网站及数据库自动本地备份并FTP上传备份脚本
- 批处理程序:自动上传FTP,再登陆linux服务器执行更新
- FTP服务器上传目录修改-vsftps
- Unity3d 工具打包完 自动上传到FTP服务器
- 自动上传FTP服务器的shell脚本