⑴ linux下如何实现增量备份
服务器需求:
需要备份文件的服务器(服务器端):192.168.10.2 (RHEL 5)
接收备份文件的服务器(客户端):192.168.10.3 (RHEL 5)
实现功能:
通过rsync工具对turbomail邮件服务器的accounts目录和conf目录进行增量备份。
accounts目录:用于存储用户相关信息的目录
conf目录:用户配置文件存放目录
前提条件:
先将turbomail邮件系统安装好(服务器端与客户端操作一样)
安装过程如下:
1、挂载光驱:mount /dev/cdrom
2、将turbomail的安装包拷贝到跟目录下/
#cd /dev/cdrom
#cp turbomail_linux_x86_xxx.tgz
3、解压turbomail安装包
tar –zxvf turbomail_linux_x86_xxx.tgz
4、启动turbomail
#cd /turbomail
#./starttm.sh
#cd /turbomail/web/bin/
#./startup.sh 5、修改启动脚本/etc/rc.d/rc.local
使邮件服务器开机自动启动加入以下几行:#/turbomail/starttm.sh &
#/turbomail/web/bin/startup.sh & #/turbomail/safestart.sh &
rsync的配置如下:
1.服务器端rsync的配置:使用系统自带的rsync工具,插入系统启动光盘,通过rpm安装rsync工具。
若采用采用源码包安装,上传安装包到服务器1)tar –zxvf rsyncrsync-2.6.9.tar.gz #解压2)cd rsyncrsync-2.6.9 3)./configure #默认配置,生成编译环境
4)make #编译
5)make install #安装完成,任何步骤有疑问输入echo $?查返回值,0表示成功,其他都为失败rsync 版本
2.4.6(可以从http://rsync.samba.org/rsync/获得最新版本)
1)编辑/etc/rsyncd.conf文件,rsync的主要配置文件:
#[globale]
strict modes= yes
#check passwd file
port= 873 #rsync工具默认使用的端口
#default port
logfile= /var/log/rsyncd.log #日志文件存放路径pidfile= /var/run/rsyncd.pid #记录rsync运行时的进程ID
max connections= 4 #同上最大的链接数
#[moles] #同步模块的配置
[rsync]
uid= root #该选项指定当该模块传输文件时守护进程应该具有的uid
gid= root #该选项指定当该模块传输文件时守护进程应该具有的gid
ignore errors #忽略一些无关的错误信息
#要备份的目录
path= /turbomail/accounts #需要同步的目录
read only= no #是否设置以只读的方式运行
host allow= 192.168.10.3 #同步数据的客户端ip如有多个客户端,以“,”隔开即可
auth users= zhouhw #同步用的用户名
secrets file= /etc/rsyncd.scrt #同步的密码认证文件
[test]
uid= root #该选项指定当该模块传输文件时守护进程应该具有的uid
gid= root #该选项指定当该模块传输文件时守护进程应该具有的gid
ignore errors #忽略一些无关的错误信息
#要备份的目录
path= /turbomail/conf #需要同步的目录
read only= no #是否设置以只读的方式运行
host allow= 192.168.10.3 #同步数据的客户端ip如有多个客户端,以“,”隔开即可
auth users= zhouhw #同步用的用户名
secrets file= /etc/rsyncd.scrt #同步的密码认证文件2)编辑/etc/rsyncd.scrt文件,密码认证文件
zhouhw:123456
该更权限为600:chmod 600 /etc/rsyncd.scrt 3) 运行rsync --daemon,并在/etc/rc.d/rc.local加入此语句,开机自动启动。
备注:rsync默认端口873,若安装了iptables,如需改动启动时启动rsync –port 873,请在iptables 中开放该端口,语句如下:
iptables -I INPUT -p tcp --dport 873 -j ACCEPT
4)编辑/etc/xinetd.d/rsync
rsync服务的监听由xinet来统一分配:
service rsync
{
disable = no #将此项改为no
socket_typ
e = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
重启xinetd以启动rsync服务
service xinetd restart
5)查看rsync事故正常运行
输入命令:netstat -ant|grep :873若有显示以下一条语句,则说明rsync服务已经正常启动了。
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2.客户端的配置:使用系统自带的rsync工具,插入系统启动光盘,通过rpm安装rsync工具。
1)编辑/etc/rsyncd.scrt文件,密码认证文件
zhouhw:123456
该更权限为600:chmod 600 /etc/rsyncd.scrt 2)编辑脚本vi /root/scrpit/rsync.sh并加入开机自动启动。
#!/bin/sh /usr/bin/rsync -vazu --progress --delete
[email protected]::rsync /turbomail --password-file=/etc/rsyncd.scrt
[email protected]::test /turbomail
--password-file=/etc/rsyncd.scrt修改权限:chmod u+x
/root/scrpit/rsync.sh执行./rsync.sh 同步数据。
3)编辑/etc/crontab文件,定义为每小时30分钟执行一次数据同步。
vi /etc/crontab
# run-parts
01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root
run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4
1 * * root run-parts /etc/cron.monthly 30 * * * * root
/root/scrpit/rsync.sh客户端的配置到此就可以了,服务器与客户端的数据也会在每小时的第30分钟执行一次。
客户端同步命令详解:
v, --verbose 详细模式输出-q, --quiet 精简输出模式-c, --checksum
打开校验开关,强制对文件传输进行校验-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模式处理-R, --relative 使用相对路径信息-b, --backup
创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX定义备份文件前缀
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件) -l, --links 保留软链结-L, ---links 想对待常规文件一样处理软链结
---unsafe-links仅仅拷贝指向SRC路径目录树以外的链结
--safe-links忽略指向SRC路径目录树以外的链结
-H, --hard-links 保留硬链结-p, --perms 保持文件权限-o, --owner 保持文件属主信息-g,
--group 保持文件属组信息-D, --devices 保持设备文件信息-t, --times 保持文件时间信息-S, --sparse
对稀疏文件进行特殊处理以节省DST的空间-n, --dry-run现实哪些文件将被传输-W, --whole-file
拷贝文件,不进行增量检测-x, --one-file-system 不要跨越文件系统边界-B, --block-size=SIZE
检验算法使用的块尺寸,默认是700字节-e, --rsh=COMMAND 指定替代rsh的shell程序
--rsync-path=PATH指定远程服务器上的rsync命令所在路径信息
-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
--delete删除那些DST中SRC没有的文件
--delete-excluded同样删除接收端那些被该选项指定排除的文件
--delete-after传输结束以后再删除
--ignore-errors及时出现IO错误也进行删除
--max-delete=NUM最多删除NUM个文件
--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输--force 强制删除目录,即使不为空
--numeric-ids不将数字的用户和组ID匹配为用户名和组名
--timeout=TIME IP超时时间,单位为秒-I, --ignore-times
不跳过那些有同样的时间和长度的文件--size-only
当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
-T --temp-dir=DIR在DIR中创建临时文件
--compare-dest=DIR同样比较DIR中的文件来决定是否需要备份
-P等同于--partial
--progress显示备份过程
-z, --compress 对备份的文件在传输时进行压缩处理
--exclude=PATTERN指定排除不需要传输的文件模式
--include=PATTERN指定不排除而需要传输的文件模式
--exclude-from=FILE排除F
ILE中指定模式的文件
--include-from=FILE不排除FILE指定模式匹配的文件
--version打印版本信息
--address绑定到特定的地址
--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
--port=PORT指定其他的rsync服务端口
--blocking-io对远程shell使用阻塞IO
-stats给出某些文件的传输状态
--progress在传输时现实传输过程
--log-format=formAT指定日志文件格式
--password-file=FILE从FILE中得到密码
--bwlimit=KBPS 限制I/O带宽,KBytes per second -h, --help 显示帮助信息
⑵ rsync 重启后启动就出错了!`
Rsync(remote sync)是类unix系统下的数据镜像备份工具,支持大多数的类unix系统,无论是Linux、Solaris还是BSD,都经过了的测试,现在也有支持windows下的rsync(cwRsync)也已经测试通过,rsync 是一个节约带宽的备份方案,不像传统的 ftp 会下载所有的文件。如果你启动不了,尝试下1、编辑/etc/ld.so.conf文件,添加一行:
/usr/local/困春lib
2、保存后运行ldconfig。
3、再启动运行rsyncd服务运行,问题得到解决。
(注:ld.so.conf和ldconfig用于维护系统动态链汪培耐接库)。
只能想中塌到这么多,再不行 你就从装吧
(江西新华电脑学院为你解答)
⑶ linux rsync配置出错
一燃握、rsync简介用于替代rcp的一个工具,rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时rsyncserver会开一个873端口,贺段烂等待客户端去连接,连接时,rsyncserver会检查口令是否相符,若通过口令查核,则可以通禅漏过进行文
⑷ Linux命令rsync的疑问
Here is a short summary of the options available inrsync. Please refer to the detailed description below for
a complete description.-v, --verbose increase verbosity
-q, --quiet suppress non-error messages
--no-motd suppress daemon-mode MOTD (see caveat)
-c, --checksum skip based on checksum, not mod-time & size
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
--no-OPTION turn off an implied OPTION (e.g. --no-D)
-r, --recursive recurse into directories
-R, --relative use relative path names
--no-implied-dirs don't send implied dirs with --relative
-b, --backup make backups (see --suffix & --backup-dir)
--backup-dir=DIR make backups into hierarchy based in DIR
--suffix=SUFFIX backup suffix (default ~ w/o --backup-dir)
-u, --update skip files that are newer on the receiver
--inplace update destination files in-place
--append append data onto shorter files
--append-verify --append w/old data in file checksum
-d, --dirs transfer directories without recursing
-l, --links symlinks as symlinks
-L, ---links transform symlink into referent file/dir
---unsafe-links only "unsafe" symlinks are transformed
--safe-links ignore symlinks that point outside the tree
-k, ---dirlinks transform symlink to dir into referent dir
-K, --keep-dirlinks treat symlinked dir on receiver as dir
-H, --hard-links preserve hard links
-p, --perms preserve permissions
-E, --executability preserve executability
--chmod=CHMOD affect file and/or directory permissions
-A, --acls preserve ACLs (implies -p)
-X, --xattrs preserve extended attributes
-o, --owner preserve owner (super-user only)
-g, --group preserve group
--devices preserve device files (super-user only)
--specials preserve special files
-D same as --devices --specials
-t, --times preserve modification times
-O, --omit-dir-times omit directories from --times
--super receiver attempts super-user activities
--fake-super store/recover privileged attrs using xattrs
-S, --sparse handle sparse files efficiently
-n, --dry-run perform a trial run with no changes made
-W, --whole-file files whole (w/o delta-xfer algorithm)
-x, --one-file-system don't cross filesystem boundaries
-B, --block-size=SIZE force a fixed checksum block-size
-e, --rsh=COMMAND specify the remote shell to use
--rsync-path=PROGRAM specify thersyncto run on remote machine
--existing skip creating new files on receiver
--ignore-existing skip updating files that exist on receiver
--remove-source-files sender removes synchronized files (non-dir)
--del an alias for --delete-ring
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before transfer (default)
--delete-ring receiver deletes ring xfer, not before
--delete-delay find deletions ring, delete after
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files from dest dirs
--ignore-errors delete even if there are I/O errors
--force force deletion of dirs even if not empty
--max-delete=NUM don't delete more than NUM files
--max-size=SIZE don't transfer any file larger than SIZE
--min-size=SIZE don't transfer any file smaller than SIZE
--partial keep partially transferred files
--partial-dir=DIR put a partially transferred file into DIR
--delay-updates put all updated files into place at end
-m, --prune-empty-dirs prune empty directory chains from file-list
--numeric-ids don't map uid/gid values by user/group name
--timeout=SECONDS set I/O timeout in seconds
--contimeout=SECONDS set daemon connection timeout in seconds
-I, --ignore-times don't skip files that match size and time
--size-only skip files that match in size
--modify-window=NUM compare mod-times with reced accuracy
-T, --temp-dir=DIR create temporary files in directory DIR
-y, --fuzzy find similar file for basis if no dest file
--compare-dest=DIR also compare received files relative to DIR
---dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-z, --compress compress file data ring the transfer
--compress-level=NUM explicitly set compression level
--skip-compress=LIST skip compressing files with suffix in LIST
-C, --cvs-exclude auto-ignore files in the same way CVS does
-f, --filter=RULE add a file-filtering RULE
-F same as --filter='dir-merge /.rsync-filter'
repeated: --filter='- .rsync-filter'
--exclude=PATTERN exclude files matching PATTERN
--exclude-from=FILE read exclude patterns from FILE
--include=PATTERN don't exclude files matching PATTERN
--include-from=FILE read include patterns from FILE
--files-from=FILE read list of source-file names from FILE
-0, --from0 all *from/filter files are delimited by 0s
-s, --protect-args no space-splitting; wildcard chars only
--address=ADDRESS bind address for outgoing socket to daemon
--port=PORT specify double-colon alternate port number
--sockopts=OPTIONS specify custom TCP options
--blocking-io use blocking I/O for the remote shell
--stats give some file-transfer stats
-8, --8-bit-output leave high-bit chars unescaped in output
-h, --human-readable output numbers in a human-readable format
--progress show progress ring transfer
-P same as --partial --progress
-i, --itemize-changes output a change-summary for all updates
--out-format=FORMAT output updates using the specified FORMAT
--log-file=FILE log what we're doing to the specified FILE
--log-file-format=FMT log updates using the specified FMT
--password-file=FILE read daemon-access password from FILE
--list-only list the files instead of ing them
--bwlimit=KBPS limit I/O bandwidth; KBytes per second
--write-batch=FILE write a batched update to FILE
--only-write-batch=FILE like --write-batch but w/o updating dest
--read-batch=FILE read a batched update from FILE
--protocol=NUM force an older protocol version to be used
--iconv=CONVERT_SPEC request charset conversion of filenames
--checksum-seed=NUM set block/file checksum seed (advanced)
-4, --ipv4 prefer IPv4
-6, --ipv6 prefer IPv6
--version print version number
(-h) --help show this help (see below for -h comment)
⑸ Linux下rsync命令用法
rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一详细说明
在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项碧悉一一进行分析说明。
Rsync的命令察慧指格式可以为以下六种:
rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@]HOST:DEST
rsync [OPTION]...
[USER@]HOST:SRC DEST
rsync [OPTION]... [USER@]HOST::SRC DEST
rsync
[OPTION]... SRC [USER@]HOST::DEST
rsync [OPTION]...
rsync://[USER@]HOST[:PORT]/SRC [DEST]
对应于以上六种命令格式,rsync有六种不同的工作模式:
1)拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:rsync -a /data /backup
2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:rsync
-avz *.c foo:src
3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:rsync
-avz foo:src/bar /data
4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:rsync -av
[email protected]::www /databack
5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:rsync -av /databack
[email protected]::www
6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync
-v rsync://172.16.78.192/www
rsync参数的具体解释如下:
-v,
--verbose 详细模式输出
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive
对子目录以递归模式处理
-R, --relative 使用相对路径信息
-b, --backup
创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX 定义败配备份文件前缀
-u,
--update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-l, --links 保留软链结
-L, ---links 想对待常规文件一样处理软链结
---unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结
--safe-links 忽略指向SRC路径目录树以外的链结
-H, --hard-links 保留硬链结
-p, --perms
保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-D, --devices
保持设备文件信息
-t, --times 保持文件时间信息
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
-n,
--dry-run现实哪些文件将被传输
-W, --whole-file 拷贝文件,不进行增量检测
-x, --one-file-system
不要跨越文件系统边界
-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节
-e, --rsh=COMMAND
指定使用rsh、ssh方式进行数据同步
--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
-C,
--cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
--existing
仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
--delete 删除那些DST中SRC没有的文件
--delete-excluded 同样删除接收端那些被该选项指定排除的文件
--delete-after 传输结束以后再删除
--ignore-errors 及时出现IO错误也进行删除
--max-delete=NUM 最多删除NUM个文件
--partial
保留那些因故没有完全传输的文件,以是加快随后的再次传输
--force 强制删除目录,即使不为空
--numeric-ids
不将数字的用户和组ID匹配为用户名和组名
--timeout=TIME IP超时时间,单位为秒
-I, --ignore-times
不跳过那些有同样的时间和长度的文件
--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
-T --temp-dir=DIR
在DIR中创建临时文件
--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份
-P 等同于 --partial
--progress 显示备份过程
-z, --compress 对备份的文件在传输时进行压缩处理
--exclude=PATTERN
指定排除不需要传输的文件模式
--include=PATTERN 指定不排除而需要传输的文件模式
--exclude-from=FILE
排除FILE中指定模式的文件
--include-from=FILE 不排除FILE指定模式匹配的文件
--version 打印版本信息
--address 绑定到特定的地址
--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
--port=PORT 指定其他的rsync服务端口
--blocking-io 对远程shell使用阻塞IO
-stats
给出某些文件的传输状态
--progress 在传输时现实传输过程
--log-format=formAT 指定日志文件格式
--password-file=FILE 从FILE中得到密码
--bwlimit=KBPS 限制I/O带宽,KBytes per second
-h, --help 显示帮助信息
⑹ Linux下rsync命令用法
1、首先要设置一台rsync服务器比如A服务器,否则2个都是客户机无法传递,还不如scp
2、B服务器的test目录权限一定要开放,最好是777
3、rsync有6种状态,可以从A到B,也可以从B到A,升值可以从A到B,C,D等等
4、rsync的语句结构是:rsync
[OPTION]...
SRC
[SRC]...
rsync://[USER@]HOST[:PORT]/DEST
你可以man或rsync
--help看一下关于option,给你个使用rsync语句2台服务器同步的实例:rsync
-vazu
--progress
--password-file=/etc/rsyncd.secrets
[email protected]::Samba
/home/Samba/
解释:-vazu
v代表详细输出
a代表归档
z代表压缩传递
u代表只更新改动的地方
--progress显示传输过程
--password表示可以选择后面的密码文件去自动匹配密码
还可以加上
--delete选项,将服务器没有的内容删除等等,选项很多,用法灵活,再配合crontab可以实现自动同步备份。
⑺ linux rsync 怎么重启
rsync的命令格式可以为:
1. rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
2. rsync [OPTION]... [USER@]HOST:SRC DEST
3. rsync [OPTION]... SRC [SRC]... DEST
4. rsync [OPTION]... [USER@]HOST::SRC [DEST]
5. rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
6. rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
rsync有六种不同的工作模式:
1. 拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。
2.使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。
3.使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。
4. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。
5. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。
6. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
-a 以archive模式操作、复制目录、符号连接 相当于-rlptgoD
rsync中的参数
-r 是递归
-l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度;
-v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;
-e ssh的参数建立起加密的连接。
-u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
--progress是指显示出详细的进度情况
--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
--password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。
B、一些实例
B1、列出rsync 服务器上的所提供的同步内容;
首先:我们看看rsync服务器上提供了哪些可用的数据源
# rsync --list-only [email protected]::
++++++++++++++++++++++++++++++++++++++++++++++
Welcome to use the mike.org.cn rsync services!
2002------2009
++++++++++++++++++++++++++++++++++++++++++++++
rhel4home This is RHEL 4 data
注:前面是rsync所提供的数据源,也就是我们在rsyncd.conf中所写的[rhel4home]模块。而“This is RHEL 4 data”是由[rhel4home]模块中的 comment = This is RHEL 4 data 提供的;为什么没有把rhel4opt数据源列出来呢?因为我们在[rhel4opt]中已经把list=no了。
⑻ Linux下数据备份命令scp、rsync和后台运行
scp和rsync 均可实现文件的复制,但相比较,scp占用系统资源较小,rsync速度较快。当小文件众多时,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。可根据需要这俩选其一实现文件复制。
scp 是secure 的缩写,scp是Linux系统下基于ssh登录进行安全的远程文件拷贝命令。
可以实现本地文件复制到远程服务器,也可以将远程文件复制到本地。
rsync 是remote sync的缩写。使用rsync备份数据时,不会直接覆盖以前的数据(如果数据已经存在),而是先判断已存在的数据和新数据的差异(默认规则是文件大小或修改时间有差异),只有数据不相同时才会把不相同的部分覆盖。在仅作增量数据的时比scp灵活。
一般CentOS默认安装rsync,若使用 rsync -v 提示找不到命令,可使用 yum install -y rsync 安装。
单个冒号和双冒号的区别 :使用rsync在远程传输数据前,是需要进行登陆认证的,这个过程可使用ssh协议也可以使用rsync协议完成。单冒号(:)使用的是ssh协议;双冒号(::)使用的是rsync协议。
默认情况下,rsync只确保源文件的所有内容(明确排除的文件除外)都复制到目标目录。它不会使两个目录保持不同,并且不会删除文件。如果要使目标目录成为源目录的镜像副本,则使用--delete选项。可删除只存在目标目录,不存在于源目录的文件。
增量备份算是一个经常使用的场景了。两台服务器之间进行文件定期备份,无需所有文件都一遍,仅复制有变动的文件。
具体做法是,第一次同步是全量备份,所有文件在基准目录里面同步一份。以后每一次同步都是增量备份,只同步源目录与基准目录之间有变动的部分,将这部分保存在一个新的目标目录。这个新的目标目录之中,也是包含所有文件,但实际上,只有那些变动过的文件是存在于该目录,其他没有变动的文件都是指向基准目录文件的硬链接。
--link-dest 参数用来指定同步时的基准目录。
上面命令中, --link-dest 参数指定基准目录 /compare/path ,然后源目录 /source/path 跟基准目录进行比较,找出变动的文件,将它们拷贝到目标目录 /target/path 。那些没变动的文件则会生成硬链接。这个命令的第一次备份时是全量备份,后面就都是增量备份了。
一般服务器之间复制文件都比较大,为防止误操作,最好在后台运行。但因为需要和远程服务器之间的ssh通讯多是需要密码的,所以不能直接使用nohup 放置于后台。无论是scp还是rsync都可操作如下:
后台和前台任务的切换
scp不支持断点续传,挂起scp进程可能导致数据缺失。倾向于使用rsync。
如果有其他任务需要使用nohup后台运行,但执行时却忘记了使用nohup,也可参照此方法进行设置。
参考:1. Linux之scp命令及后台运行scp
⑼ linux上的rsync命令详解
rsync 就是远程同步的意思remote sync.
rsync 被用在UNIX / Linux执行备份操作操作.
rsync 工具包被用来从一个位置到另一个位置高效地同步文件和文件夹. rsync可以实现在同一台机器的不同文件直接备份,也可以跨服务器备份.
rsync 语法如下
从语法结构我们可以看出, 源和目标即可以在本地也可以在远端. 如果是远端的话,需要指明登录用户名, 远端服务器名, 和远端文件或目录. 同时源可以是多个, 目标位置只能是一个.
说明:
-z: --compress 使用压缩机制
-v: --verbose 打印详细信息
-r: --recursive 以递归模式同步子目录
注意: 同步完成后, 我们会发现文件的时间戳timestamps发生了改变.
有时我们希望拷贝或同步时, 时间戳不要发生变化, 源文件是什么时间戳,目标文件就是什么猜悉敏时间戳, 这时我们需要使用 -a --archive 归档模式选项. -a 选项相当于7个选项的组合 -rlptgoD
-r, --recursive: 递归模式Recursive mode
-l, --links: 将符号链接当作符号链接文件拷贝, 不拷贝符合链接指向的文件内容.
-p, --perms: 保留文件权限
-t, --times: 保留陆高修改时间戳
-g, --group: 保留用户组信息
-o, --owner: 保留用户信息(需要超级用户权限)
-D, 相当于 --devices --specials 的组合, 保留设备文件, 保留特殊文件.
同步完成后, 我们再来看文件属性, 时间戳信息得到了保留, 不仅如此文件的所有者 和所在组也得到保穗枝留.
说明: Pubkeys 是一个普通文件
使用rsync, 也可以从本地拷贝多个文件或目录到远端, 以下即为示例:
注意:
与本地文件拷贝不同的地方在于, 当拷贝文件到远程服务器时, 我们指定远程主机上的用户名, 服务器地址, 路径等信息, 类是于使用scp命令拷贝, 如果没有设置ssh免密码登录我们还需要提供远程用户的密码等信息.有时你不想频繁输入密码, 或者rsync运行在一个无人执守的脚本里面, 这是需要预先设置ssh免密登录, 或者使用结合expect命令,自动输入密码, 但是出于安全考虑, 密码需要加密. 所以在条件许可的情况下, 还是推荐设置ssh免密登录.
与示例 4 稍有不同, 这时远端目录或文件作为源位置, 本地目录或文件作为目标位置, 示例如下:
rsync 允许指定远程主机上运行shell命令.
这时需要使用 -e 选项:
-e, --rsh=COMMAND 指定远端使用的shell命令
Use rsync -e ssh to specify which remote shell to use. In this case, rsync will use ssh.
在一下特殊的使用场景中, 我们不希望拷贝文件时, 我们不希望拷贝过程覆盖掉目标位置中用户做出的修改. 这时我们需要使用 -u 选项明确的告诉rsync命令保留用户在目标文件中作出的修改. 在下面的例子中, 文件Basenames是用户基于上次的拷贝, 修改过的文件, 当我们使用了-u 选项后, 该文件中的修改将不会被覆盖掉.
在某些特殊场景中, 我们只需要远程服务器上的目录结构, 而不希望花大量时间, 带宽拷贝文件内容, 这时我们可以使用 -d, --dirs选项来达到目的.
有时我们希望拷贝文件时, 能实时的显示拷贝进度, 以及传输速率等信息. 尤其是拷贝大文件时, 程序不输出信息, 用户往往无法区分程序是在响应中, 还是已经挂起, 在这种情况下如果使用 –progress 就会非常有帮助.
rsync –progress option displays detailed progress of rsync execution as shown below.
你也可以使用rsnapshot工具 (rsnapshot会调用rsync)来备份本地linux服务器, 或者备份远程linux服务器.
有时我们希望目标文件和源文件保持严格一致, 不要多文件也不要少文件, 这是我们可能需要使用 -delete 选项来达到目的. 如果使用 -delete 选项, rsync将删除目标位置多余的文件或文件夹. 此选项还可以结合--delete-excluded 选项一起使用, 添加一些例外的文件.
上述示例中, new-file.txt 是源文件中没有的文件, 其将会在拷贝时被删除掉.
在某些特殊的场景下, 我们只想更新, 目标位置已经存在的文件或目录, 而不关心源位置的新文件, 这时我们可以使用-existing 选项仅仅更新已经存在的文件.
让我们来验证一下这个选项的功能, 首先在源端添加一个新文件 new-file.txt.
从上面的例子可以看到, 由于加了--existing选项新文件new-file.txt没有被拷贝到目标位置
选项-i, --itemize-changes 非常有用, 当我们想了解目标位置和源位置的文件差异时.
在源端:
在目标端:
注意: 在上面的例子中, 源位置和目标位置有两处差异. 第一, 源文件Basenames的所有者和组 与 目标文件不同, 第一Dirnames文件大小也不一样.
现在让我们来看看rsync会怎样显示这些差异
输出信息只在相应文件前面显示了9个字母来标识改变, 这些字母具体是什么意思呢? 请参考以下详细说明
rsync 可以使用--include 和 --exclude 选项结合通配符进行文件或文件夹过滤
在上面的示例中, 仅仅以P打头的文件和文件夹被包含了进来, 其他的文件都被过滤在拷贝的过程中被排除在外了.
可以使用--max-size 告诉rsync 不要拷贝大小超过某个值的文件, 可以使用K, M, G指定文件大小, M for megabytes and G for gigabytes.
rsync 有个重要优点就是, 可以做到在拷贝的过程中, 只拷贝发生变化了的部分, 而不是发送整个文件.
但是在某些场景中, 比如文件较少, 文件size较小时, 我们的带宽又足够大, cpu资源相对又贫乏, 我们不希望它这样做, 因为毕竟计算源端和目标端的checksum, 并做对比, 也需要额外cpu开销. 这时我们可以使用 -W, --whole-file 选项, 让rsync不用计算那么多, 一上来就直接开始传送文件. 我们可以像下面这么做.
15个Rsync命令实例
⑽ windows rsync传输到linux备份
一些软件安装在windows上想要对上面的文件进行异地备份
后来找到cwRsync ——同步Windows文件到Linux,和linux的rsync一样的功效
链接: https://pan..com/s/1zDojiAAnpBaCDUCRiYzXzw
提取码:07l1
windows默认安装即可
windows上配置rsyncd.conf 文件
cat /cygdrive/d/Program Files (x86)/ICW/rsync_db.ps
此密码文桥腔件里的敏运衫格式是"用户名:密码",这个密码可以随意指定。但最好设置服务器的用户名和密码。如果觉得不安全,就另外创建一个用户名和密码,专门用于rsync同步之用。
但是千万要记得这个创建的用户名对E:\Setting\Rsync\rsync_db.ps这个密码文件要有修改悄腔的操作权限。
安装完成后windows-服务,就可以找到,修改好配置文件,重启服务即可
测试是否可以连通
进入Linux服务器,新建一个backup_passwd的文件,内容为在上面windows中RsyncServer中设定的密码内容:
linux服务器上要安装rsync环境。这里将windows备份数据同步到linux的/Win_Back目录下
--delete表示如果有删除也更新,可以实现目标文件夹增加和删除和修改都更新的目的
放到linux的crontab中,每天执行一次,第一次全量备份会比较慢,后期都是增量备份会很快
windows重启后rsync服务并没有启动,服务——RsyncServer,手动启动后报错
“本地计算机上的rsyncserver服务启动后停止,某些服务在未由其他服务或程序”
后查看原来是rsyncserver异常结束时,pid文件未及时删除,导致再次启动服务时因检测到pid文件而认为服务已经启动。而windows的服务管理器并不以pid为检测标准,所以弹出启动又停止的提示
解决:
手动删除esyncserver产生的pid文件,再次启动即可
C:\Program Files (x86)\ICW\rsyncd.pid