expect自动上传目录到FTP服务器

简介:

    客户需求:在/home/installer目录下会每天生成一个目录(日期格式),需要每天定时把这些目录上传到云服务器指定目录下(FTP)

    思路:crontab添加任务计划,需要自动登录ftp服务器,所以需要expect来自动输入账号密码,

    解决方案:

    1:下载所需要的工具包:expect,lftp(直接yum下载即可,此步忽略)

    2:编辑expect脚本,vim /home/install/back.expect   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/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
exit

    3:将脚本写到任务计划里,比如每天晚上10点上传

    0 22 * * * /usr/bin/expect /home/installer/back.expect

    4:然后启动任务计划

    /etc/init.d/crontab start



本文转自 运维小学生 51CTO博客,原文链接:http://blog.51cto.com/yasar/1874130,如需转载请自行联系原作者

相关文章
|
5月前
|
Ubuntu 安全 网络安全
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
309 13
|
6月前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
7月前
|
应用服务中间件 PHP nginx
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
|
9月前
|
安全 编译器 Linux
深入解析与防范:基于缓冲区溢出的FTP服务器攻击及调用计算器示例
本文深入解析了利用缓冲区溢出漏洞对FTP服务器进行远程攻击的技术,通过分析FreeFlow FTP 1.75版本的漏洞,展示了如何通过构造过长的用户名触发缓冲区溢出并调用计算器(`calc.exe`)。文章详细介绍了攻击原理、关键代码组件及其实现步骤,并提出了有效的防范措施,如输入验证、编译器保护和安全编程语言的选择,以保障系统的安全性。环境搭建基于Windows XP SP3和Kali Linux,使用Metasploit Framework进行攻击演示。请注意,此内容仅用于教育和研究目的。
251 4
|
11月前
|
网络协议 文件存储 Windows
Windows Server 2019 FTP服务器搭建
Windows Server 2019 FTP服务器搭建
334 0
|
11月前
|
安全 网络协议 网络安全
Windows Server 2003 FTP服务器搭建
Windows Server 2003 FTP服务器搭建
152 0
|
11月前
|
弹性计算 关系型数据库 网络安全
阿里云国际版无法连接和访问Windows服务器中的FTP服务
阿里云国际版无法连接和访问Windows服务器中的FTP服务
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
|
安全 Ubuntu Linux
在Linux中,如何进行FTP服务器配置?
在Linux中,如何进行FTP服务器配置?

热门文章

最新文章