linux 下文件同步复制

王朝system·作者佚名  2006-09-05
窄屏简体版  字體: |||超大  

linux 下文件同步复制

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 命令查看 拷贝脚本是否在运行。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航