文件同步 scp rsync

2016年5月13日

SCP 同步

从备份主机或主机拉取文件 同步至本地

  1. scp root@服务器IP:/usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/
  2. scp root@服务器IP:/root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
  3. scp root@服务器IP:/home/data/www/htdocs/topluxussale.com.zip /home/

从本地推向其他主机

  1. scp -r /usr/local/mysql/var/ghd/ root@服务器IP:/home/test/
  2. scp -r /home/data/www/htdocs/1.1.1.1-sql-120630.tar.gz root@服务器IP:/home/data/www/htdocs
  3. scp -r 服务器IP:/home/up/database/one/ /home/data/www/htdocs/1.1.1.1/sql/
  4. scp -r 服务器IP:/home/data/www/htdocs/latest.zip /home/data/www/htdocs/1.1.1./web/

==================
scp 命令
==================
scp 可以在 2个 linux 主机间复制文件;

命令基本格式:
scp [可选参数] file_source file_target

======
从 本地 复制到 远程
======
* 复制文件:

* 命令格式:
scp local_file remote_username@remote_服务器IP:remote_folder
或者
scp local_file remote_username@remote_服务器IP:remote_file
或者
scp local_file remote_服务器IP:remote_folder
或者
scp local_file remote_服务器IP:remote_file

 

 

第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;

* 例程:

  1. scp /home/space/music/1.mp3 [email protected]:/home/root/others/music
  2. scp /home/space/music/1.mp3 [email protected]:/home/root/others/music/002.mp3
  3. scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music

scp /home/data/www/htdocs/$WebBackName 服务器IP:/home/up/database

* 复制目录:
* 命令格式:

scp -r local_folder remote_username@remote_ip:remote_folder

或者

scp -r local_folder remote_服务器IP:remote_folder

第1个指定了用户名,命令执行后需要再输入密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
* 例程:

  1. scp -r /home/space/music/ root@:/home/root/others/
  2. scp -r /home/space/music/ [email protected]:/home/root/others/
  3.  
  4. scp -r /home/backup."$int"/ 1.1.1.1:/home/up/database

上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录

======
从 远程 复制到 本地
======
从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可;

例如:

  1. scp [email protected]:/home/root/others/music /home/space/music/i.mp3
  2. scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/

rsync 同步 (断点续传即只将更新的传递同步相同的不传)

# 执行“推”复制同步
#这是指将本地操作将本地的文件 复制到 1.1.1.1 的/home/data/www/htdocs 位置下
rsync -avz --delete /home/data/www/htdocs/2.1.1.1-sql-120604.tar.gz [email protected]:/home/data/www/htdocs

 

 

# 执行“拉”复制同步
# 这是指在备份的主机上操作的 在备份的主机上 将需要的备份的主机的文件复制到(拉到)备份的主机上
rsync -avz --delete [email protected]:/home/data/www/htdocs/2.2.2.2-sql-120604.tar.gz /home/data/www/htdocs
rsync -avz --delete [email protected]:/home/data/www/htdocs/2.3.3.3/* /home/www/one

rsync -avz --delete [email protected]:/home/www/ /home/data/www/htdocs/other

#!/bin/bash
#---------------------------------------------------------------
#back server 服务器IP
back服务器IP = 1.1.1.1
backpath = /home/www/
path = /home/data/www/htdocs/other
rsync -avz --delete root@$back服务器IP:$backpath $path

******************************************************************************************************

centos rsync 同步文件配置

有两个需求
1,从server推送文件到client 保持同步
2,在client获取server上的文件夹 保持同步

server,client 没有明确界定. 推送到的 和 获取文件 机器 需要配置 rsync 服务
rsync服务配置
rsync 配置文件

需要同步的主机
vim /etc/rsyncd.conf
内容修改为

uid=nobody
#以什么身份运行rsync
gid=nobody
user chroot=no
#不使用chroot
max connections =200
#指定该模块的最大并发连接数量以保护服务器,超过限制的连接请求将被告知随后再试。默认值是0,也就是没有限制。
#最大连接数
timeout=600
#通过该选项可以覆盖客户指定的服务器IP超时时间。通过该选项可以确保rsync服务器不会永远等待一个崩溃的客户端。超时单位为秒钟,0表示没有超时定 义,这也是默认值。对于匿名rsync服务器来说,一个理想的数字是600。
pid file=/var/run/rsyncd.pid
#指定rsync的pid文件
lock file=/var/run/rsyncd.lock
#指定支持max connections参数的锁文件,默认值是/var/run/rsyncd.lock
log file=/var/log/rsyncd.log
#指定rsync的日志文件,而不将日志发送给syslog
#comment = hello world
#motd file = /etc/rsyncd.motd #欢迎信息文件名称和存放位置(此文件没有,可以自行添加)

 

 

[backup]
path=/var/www
#需要做镜像的目录即操作(同步)的目录
ignore errors
# 指定rsyncd在判断是否运行传输时的删除操作时忽略server上的IO错误,一般来说rsync在出现IO错误时将将跳过–delete操 作,以防止因为暂时的资源不足或其它IO错误导致的严重问题。

read only=false
# 该选项设定是否允许客户上载文件。如果为true那么任何上载请求都会失败,如果为false并且服务器目录读写权限允许那么上载是允许的。默认值 为true。

list=false
# 该选项设定当客户请求可以使用的模块列表时,该模块是否应该被列出。如果设置该选项为false,可以创建隐藏的模块。默认值是true。

auth users=www
# 授权帐号。认证的用户名,如果没有这行,则表明是匿名,多个用户用,分隔
secrets file=/etc/rsyncd.password
#密码文件位置,认证文件设置,设置用户名和密码
#exclude=test1 test2
#忽略的目录 将不需要同步的目录以空格隔开
#hosts allow
#该选项指定哪些服务器IP的客户允许连接该模块。客户模式定义可以是以下形式: 单个服务器IP地址,例如:192.167.0.1 整个网段,例如:192.168.0.0/24,也可以是192.168.0.0/255.255.255.0 多个服务器IP或网段需要用空格隔开,“*”则表示所有,默认是允许所有主机连接。
#hosts deny
#指定不允许连接rsync服务器的机器,可以使用hosts allow的定义方式来进行定义。默认是没有hosts deny定义。

添加用户组和用户

groupadd www

useradd -g www www

vim /etc/rsyncd.password

修改为

www:www #用户名:密码 前后 中间 不要有空格

chmod 600 /etc/rsyncd.password

vim /etc/xinetd.d/rsync

将 disable = yes 修改为 disable = no

然后运行

/etc/init.d/xinetd restart

启动rsync 服务

/usr/bin/rsync --daemon --config=/etc/rsyncd.conf

写入开机启动

echo '/usr/bin/rsync --daemon --config=/etc/rsyncd.conf' >> /etc/rc.local

客户端配置

vim /etc/rsyncd.password

内容为 www (与rsync服务端/etc/rsyncd.password 冒号后半部分相同) #权限同上

1,在客户端执行

rsync -vzrtopg --delete --password-file=/etc/rsyncd.password /var/www/demo www@服务器IP::backup

rsync -vzrtopg --delete --password-file=/etc/rsyncd.password /var/www/demo/ root@服务器IP::backup
意思是将 客户端的 /var/www/demo 文件夹推送到 服务器服务器IP::backup指定的文件夹下 即
服务端 /etc/rsyncd.conf 中的

[backup]
path=/var/www
指定的 /var/www 文件夹下

rsync -vzrtopg --delete --password-file=/etc/rsyncd.password root@服务器IP::backup /var/www/demo/

意思是将服务器IP::backup 指定下的文件夹内的东西同步到本地的/var/www/demo/下

2,在客户端执行

rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd.password www@服务器IP::backup /var/www

rsync 进行本地拷贝   /var/www

带杠表示拷贝目录里面的内容不包括目录本身
重要的是源路径带不带杠,目标路径没关系

rsync -az /root/test/src/ /root/test/dest/
rsync -az /root/test/src/ /root/test/dest
# ls dest
# 得到src里面的内容info logs

不带杠表示拷贝目录里面的内容以及目录本身 重要的是源路径带不带杠,目标路径没关系

rsync -az /root/test/src /root/test/dest/
rsync -az /root/test/src /root/test/dest
# ls dest
# 得到src目录本身,ls src 得到src里面的内容

没有评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注