科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件linux 下文件同步复制

linux 下文件同步复制

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

linux 下文件同步复制,使用了 ssh 和 scp 。

作者:程序方程 来源:CSDN 2008年3月26日

关键字: 同步复制 文件 Linux 开源

  • 评论
  • 分享微博
  • 分享邮件
 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 命令查看 拷贝脚本是否在运行。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章