设为首页 收藏本站
查看: 1094|回复: 0

[shell]用shell脚本将本地文件夹与ftp上的文件夹同步

[复制链接]

尚未签到

发表于 2015-5-29 02:40:59 | 显示全部楼层 |阅读模式
需求说明
  最近在AIX上做开发,开发机器在office网段,测试机器在lab网段,不能互相通讯,只能通过特定的ftp来传文件。
  每次上传的机器都要做:登录ftp,进入我的目录,上传;下载的机器都要做:登录ftp,进入我的目录,下载。以上动作每天都要做几十次,很蛋疼。
  这个shell脚本的功能就是完成这些功能:登录ftp,进入我的目录,上传/下载某些文件。要传入一个参数,这个参数如果是“get”,那就从ftp下载;如果是“put”,那就上传到ftp。
  因为从来没有用过shell脚本,所以将一些关键点记录下来,以便今后揣摩。

脚本代码
  主要流程:


  • 判断是不是有一个参数,参数是不是“get”或者“put”,不满足的话就打印错误并退出。
  • 将登陆ftp,进入目录的动作写入一个临时的shell脚本。
  • 如果参数是“get”,将下载所有文件的代码写入临时脚本。如果参数是“put”,取到本地文件夹的所有文件,逐个将上传代码加入临时脚本。
  • 将断开ftp的代码写入临时文件。
  • 执行临时文件并删除。



1 #!/bin/sh
2
3 if [ $# -ne 1 ] ; then
4 echo "parameter error"
5 exit
6 else
7 if [ $1 != "get" ] && [ $1 != "post" ] ; then
8 echo "parameter error"
9 exit
10 fi
11 fi
12  
13 ftp_host="10.204.16.2"
14 ftp_user="test"
15 ftp_password="testtest"
16 folder_local="/home/smld/sync"
17 folder_remote="/home/smid/frank/sync"
18 temp_shell="sync_temp.sh"
19  
20 cat > $temp_shell  $temp_shell
33 elif [ $1 = "put" ]; then
34 for i in `ls $folder_local`; do
35 echo "add put $i into $temp_shell"
36 echo "put $i" >> $temp_shell
37 done
38 fi
39  
40 cat >> $temp_shell  文件名,用>会清空文件原来的内容,用>>会在文件后面追加。echo也有这样的功能。
  将多行内容作为命令的输入,EOF只是一个标志,像21行换成!作用也是一样的:
  命令

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-71597-1-1.html 上篇帖子: Linux常用的几种FTP服务器及简介、对比 下篇帖子: 利用windows系统ftp命令编写的BAT文件上传[转]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表