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,如需转载请自行联系原作者

相关文章
|
21天前
|
应用服务中间件 PHP nginx
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
|
3月前
|
安全 编译器 Linux
深入解析与防范:基于缓冲区溢出的FTP服务器攻击及调用计算器示例
本文深入解析了利用缓冲区溢出漏洞对FTP服务器进行远程攻击的技术,通过分析FreeFlow FTP 1.75版本的漏洞,展示了如何通过构造过长的用户名触发缓冲区溢出并调用计算器(`calc.exe`)。文章详细介绍了攻击原理、关键代码组件及其实现步骤,并提出了有效的防范措施,如输入验证、编译器保护和安全编程语言的选择,以保障系统的安全性。环境搭建基于Windows XP SP3和Kali Linux,使用Metasploit Framework进行攻击演示。请注意,此内容仅用于教育和研究目的。
108 4
|
5月前
|
网络协议 文件存储 Windows
Windows Server 2019 FTP服务器搭建
Windows Server 2019 FTP服务器搭建
161 0
|
5月前
|
安全 网络协议 网络安全
Windows Server 2003 FTP服务器搭建
Windows Server 2003 FTP服务器搭建
|
7月前
|
应用服务中间件 Docker 容器
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
这篇文章介绍了在Docker中安装Tomcat的过程,包括搜索Tomcat镜像、拉取镜像、目录挂载的准备、创建并挂载容器,以及如何进入容器和进行测试。文中还说明了如何将WAR包部署到Tomcat服务器并访问部署的应用。
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
|
5月前
|
弹性计算 关系型数据库 网络安全
阿里云国际版无法连接和访问Windows服务器中的FTP服务
阿里云国际版无法连接和访问Windows服务器中的FTP服务
|
7月前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
|
7月前
|
安全 Ubuntu Linux
在Linux中,如何进行FTP服务器配置?
在Linux中,如何进行FTP服务器配置?
|
7月前
|
运维 网络协议 Linux
揭秘CentOS 7:系统目录奥秘大起底,网卡配置秒变高手,让你的服务器管理飞一般的感觉!
【8月更文挑战第5天】CentOS 7作为RHEL的社区版本,以其稳定性和丰富功能广受好评。本文通过案例分析介绍其系统目录结构及网卡配置方法。系统目录如/(根)、/bin(基本命令)、/boot(启动文件)、/dev(设备文件)、/etc(配置文件)、/home(用户目录)和/lib(共享库)等各司其职。网卡配置通过编辑/etc/sysconfig/network-scripts/下的ifcfg文件实现,如设置ens33接口的静态IP地址、子网掩码、网关和DNS服务器,并通过重启网络服务使配置生效。这是系统管理员必备的技能之一。
111 2
|
7月前
|
安全 Linux Shell
Linux服务器 /etc/pam.d目录下的文件都是什么作用?
【8月更文挑战第2天】Linux服务器 /etc/pam.d目录下的文件都是什么作用?
926 2