翼度科技»论坛 云主机 服务器技术 查看内容

linux如何编写同步文件的脚本

11

主题

11

帖子

33

积分

新手上路

Rank: 1

积分
33
linux编写同步文件的脚本

搭集群最麻烦的就是修改配置文件,如果只用修改一个机器上的配置文件,然后用一个脚本就可以把配置文件同步到其他机器上,岂不快哉!

编写一个名为xsync的脚本文件

作用: 将当前机器的文件,同步到集群所有机器的相同路径下!
hadoop102:/A/a , 执行脚本后,将此文件同步到集群中所有机器的 /A/a
用户在使用xsync时,只需要传入要同步的文件即可
  1. xysnc a
复制代码
不管a是一个相对路径还是绝对路径,都需要将a转换为 绝对路径
文件的 绝对路径=父路径+文件名

  • 父路径: dirpath=$(cd
    1. dirname /home/atguigu/hi
    复制代码
    ; pwd -P)
  • 文件名: filename=
    1. basename hi
    复制代码
pwd的 -P参数是为了避免出现软链接导致的路径问题,-P可以使软链接显示出真实的链接

  • 核心命令:
  1.         for(())
  2.                 do
  3.                         rsync -rvlt   path1
  4.                 done
复制代码

  • 正式文件:
  1. #!/bin/bash
  2. #校验参数是否合法
  3. if(($#==0))
  4. then
  5.         echo 请输入要分发的文件!
  6.         exit;
  7. fi
  8. #获取分发文件的绝对路径
  9. dirpath=$(cd `dirname $1`; pwd -P)
  10. filename=`basename $1`

  11. echo 要分发的文件的路径是:$dirpath/$filename

  12. #循环执行rsync分发文件到集群的每条机器
  13. for((i=101;i<=103;i++))
  14. do
  15.         echo ---------------------hadoop$i---------------------
  16.         rsync -rvlt $dirpath/$filename  username@hostname$i:$dirpath
  17. done
复制代码
最后别忘了把xcall文件放进 家目录下的bin目录
如果没有就新建一个bin目录
因为这目录是在 全局环境变量
放进去后无论在哪个目录下都可以执行这个脚本文件!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/server/323462ojr.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具