注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

无线时代辐射无穷

抓紧生宝宝,小心辐射

 
 
 

日志

 
 

Linux 下文件同步复制  

2009-09-27 09:18:06|  分类: linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1. 采用方式
在一台机器上建立一个临时存放目录,存放文件,从这个临时目录向多台
服务器传送文件。对于该临时目录下传送后的文件,彻底删除。
 
/root/tempplay :临时目录
/root/play     :播放文件存放目录
并假定IP  地址如图所示。
                   |----------------------------|
                   |机器A(192.168.0.1)          |
                   |----------------------------|
                   |/root/tempplay              |
                   |----------------------------|
                   |/root/play                  |
                   |----------------------------|

|-----------------------------|  
|机器B1(192.168.0.2)          |
|-----------------------------|
|/root/play                   |
|-----------------------------| 
机器 B2,B3 和  B1 的目录结构一致。

图中的机器 A 就是我们的数据源机器,源机器上 /root/tempplay 目录就是
我们的临时目录,需要从 /root/tempplay 向所有机器的 /root/play 目录传送文件。/
2. 步骤
以下为了方便操作,全部采用 root 用户在在 red  linux 上测试通过。
2.1 临时目录建立
在 A 上
mkdir /root/tempplay
2.2 建立播放目录
在所有机器上
mkdir /root/play

2.3 搞定认证,产生密钥
在 A 上
cd ~/.ssh
#产生公钥文件(id_dsa.pub)和私钥文件(id_dsa), 类型DSA, 长度1024 bits
#注意询问passphrase的时候直接回车
ssh-keygen -t dsa -b 1024
#将公钥(id_dsa.pub)复制到远程的B1,B2,B3三台服务器去,命名为 id_dsa.pub.client

2.4 确认认证
在 B1,B2,B3 上执行下面操作
cd ~/.ssh
#将Client的公钥放入Server的信任列表
cat id_dsa.pub.client >> authorized_keys
#更新权限,很重要
chmod 700 $HOME/.ssh
chmod 600 $HOME/.ssh/authorized_keys
chmod g-w $HOME $HOME/.ssh $HOME/.ssh/authorized_keys

2.5 编写复制文件脚本文件 synchfile.sh,内容如下:
#bin/bash
# 拷贝后缀名称是 mp4 的文件
scp  -p –q  /root/tempplay/*.mp4 root/play /
scp  -p –q  /root/tempplay/*.mp4 root@192.168.0.2:/root/play /
scp  -p –q  /root/tempplay/*.mp4 root@192.168.0.3:/root/play /
scp  -p –q  /root/tempplay/*.mp4 root@192.168.0.4:/root/play /
# 结束后删除临时目录下文件
rm –f –r  /root/tempplay/*.mp4

2.6 脚本部署
在 A 上,复制文件synchfile.sh 到 /root 下
chmod a+x /root/synchfile.sh


2.7 定时执行
在 A 上,
#生成定时执行文件 /root/mycron,
crontab -l > /root/mycron
编辑文件 /root/mycron,增加如下内容(表示15 分钟执行一次)
*/15 * * * * /root/synchfile.sh

#crontab 命令配置定时执行 synchfile.sh
crontab  /root/mycron –u root

#重新引导
/etc/rc.d/init.d/crond restart

2.8 弊端
以上的部署不能保证你向 /root/tempplay 目录拷贝文件的时候,同时脚
本也在执行拷贝该目录下的文件到 /root/play 目录,这样会冲突,引起文件的不完整。所以拷贝脚本正在执行的时候,不要向 /root/tempplay 下放需要被复制到其他机器的文件。
可以使用 ps –e –f |grep scp 命令查看 拷贝脚本是否在运行。

  评论这张
 
阅读(402)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017