我在理解子路径的 rsync 过滤规则时遇到了一个大问题。我有这个目录树:
|-- index.php
|-- other-file-php.php
|-- filesource.php
| |-- album1
| | |-- firstphoto.jpg
| | |-- second.jpg
| | |-- index.php
| | `-- thumbs
| | |-- _map.txt
| | |-- _title_ciao.jpg.txt
| | |-- _120_second.jpg
| | |-- _dir_album1.jpg
| | `-- _300_second.jpg
| |-- altre
| | |-- img_1172.jpg
| | |-- album2
| | | |-- index.php
| | | `-- thumbs
| | | |-- _title_img_1172.jpg.txt
| | | |-- _dir_album2.jpg
| …Run Code Online (Sandbox Code Playgroud) 我使用 rsync(rsync-3.0.6-5.el6_0.1.x86_64在 Scientific Linux 6 上)将文件从 VFAT 磁盘传输到 NFS 安装的 ext3 文件系统。我在 ext3 系统上设置了 ACL,并且在创建新文件或目录(通过 NFS 挂载,通过命令行或 Nautilus)时,一切都按预期工作。但是当 rsync-ing 或 cp-ing 时,不会为 ext3 分区上复制的文件创建 ACL。
背景是 VFAT 来自相机,间歇性安装,并且不会为目录或文件创建 acl。有没有办法 rsync(甚至复制)让 ie 默认 ACL 规则将 ACL 应用于 rsync-ed 或 cp-ed 文件和目录?
我正在使用 rsync 将目录从一台机器同步到另一台机器,但我遇到了以下问题:目标目录权限被更改。
rsync -ahv defaults/ root@hostname:~/
Run Code Online (Sandbox Code Playgroud)
问题是,在这种情况下,defaults文件夹的权限和所有权将分配给目标文件夹。
我确实想保留文件和子目录的权限,但不保留源目录本身的权限。
此外,我不想从目标中删除任何现有文件(但在需要时更新它们),但我认为当前设置已经可以了。
我怎样才能做到这一点?
我目前正在管理一组 PHP-FPM 服务器,所有这些服务器都倾向于彼此不同步。我在应用服务器 (Magento) 上使用的应用程序允许管理员修改系统上的各种文件,但现在该站点处于集群设置中,修改文件仅在单个实例上修改它(在集群中各种机器的应用服务器之一。
是否有适用于 Linux 的开源应用程序可以让我保持所有这些服务器同步?创建一个可以侦听从机器到同步的更改的小型 VM 实例我没有问题。从理论上讲,完美的应用程序将有在每台机器上运行的小客户端进行同步,这将与主服务器通信,然后主服务器将决定如何/从每台机器同步什么。
我已经研究了运行集中式文件服务器的可能性,但不幸的是,我的应用程序服务器分布在 EC2 和物理机之间,这使得这不可行。由于有多个应用程序服务器(其中一些是根据站点负载动态创建的),简单地设置 rsync cron 作业效率不高,因为必须在每台机器上修改 cron 作业才能相互发送文件集群中的机器,这只是一堆不必要的数据传输/ssh 连接。
我使用 rsync 在本地设备上备份我的远程服务器,但是当我将它与 cron 作业结合使用时,我的 ssh 超时了。需要明确的是,数据存储在远程服务器上,我希望它存储在我的本地服务器上。备份请求必须从我的本地服务器发送到远程服务器。
当我像这样在终端中输入数据时,备份数据的命令正在工作:
rsync -chavzP --stats USERNAME@IPADDRES: PATH_TO_BACKUP LOCAL_PATH_TO_BACKUP
Run Code Online (Sandbox Code Playgroud)
但是当我将它与这样的 cron 工作结合起来时:
10 11 * * * rsync -chavzP --stats USERNAME@IP_ADDRESS: PATH_TO_BACKUP LOCAL_PATH_TO_BACKUP
Run Code Online (Sandbox Code Playgroud)
ssh 连接超时。当 cronjob 执行时,它会向 root 用户发送一封邮件,输出如下:
From local.xx.xx.xx Tue Jul 2 11:20:17 2013
X-Original-To: username
Delivered-To: username@username.local
From: username@username.local (Cron Daemon)
To: username@username.local
Subject: Cron <username@server> rsync -chavzP --stats USERNAME@IPADDRES: PATH_TO_BACKUP LOCAL_PATH_TO_BACKUP
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=username>
X-Cron-Env: <USER=username>
X-Cron-Env: <HOME=/Users/username>
Date: Tue, 2 Jul 2013 11:20:17 +0200 (CEST)
ssh: connect …Run Code Online (Sandbox Code Playgroud) 我有一个 Red Hat Enterprise Linux Server 5.1 (Tikanga) VMware ESX 4.1 (Kandinsky),我的计划是将文件从盒子备份到另一台主机的 NAS。我已经解决了两台主机的 ssh 连接,现在我想使用 rsync 将文件从 ESX 复制到 NAS,我想通过 crontab 执行它。NAS 安装了 rsync,但 ESX 没有安装 rsync。我已经花了一周的时间弄清楚如何在服务器中安装 rsync,但我无法让它工作。请给一些建议,在此先感谢您。
我正在尝试使用 rsync 和“--link-dest=”在服务器(Debian Wheezy、LVM、RAID 1)上创建备份的增量副本,目的是使用硬链接来节省空间。
与可能的“正常”用例不同,我想每天从 Windows 客户端备份到服务器上名为“1”的文件夹(这部分有效,但我在这里不使用 rsync 进行备份) ,然后 rsync 关闭“1”以创建 30 天的增量更改。因此,“1”随着每天来自客户端的备份而变化,但由它制作的副本将包含较旧的文件版本,价值 30 天。
从http://blog.interlinked.org/tutorials/rsync_time_machine.html上的一篇文章中,概述了如何使用 rsync 来模拟 Apple 的 Time Machine 的功能,我有以下代码(目标路径的“15/16”部分代表备份的日期/时间):
date=`date "+%Y-%m-%dT%H:%M:%S"`
$UserNameVar=client8
rsync -aP --log-file=/home/User1/Desktop/rsync.log --link-dest=/home/$UserNameVar/share/Backups/1/current /home/$UserNameVar/share/Backups/1 /home/$UserNameVar/share/Backups/15/16/back-$date
rm -f /home/$UserNameVar/share/Backups/1/current
ln -s back-$date /home/$UserNameVar/share/Backups/1/current
Run Code Online (Sandbox Code Playgroud)
代码运行,备份发生,创建上次备份和“当前”之间的链接,后续备份非常快,但据我所知,备份占用的空间与原始备份相同。
这种方法有缺陷,还是我的代码有问题?或者我是否需要一种不同的方法来计算实际可用空间?
谢谢
我在本地机器上有一个文件夹,想要 rsync 到远程机器上的文件夹。我想根据远程机器上的文件夹评估副本--link-dest。然后目标目录将被硬链接到该link--destination文件夹。
我不断收到no such file or directory错误:
rysnc -avh -e `ssh -p 2346` --link-dest=user@remote:home/user/techapps/backup user@remote:/home/user/techapps/target
Run Code Online (Sandbox Code Playgroud)
这有可能吗?还是我只是写错了?
我已经rsync在我的一台服务器上进行了配置,配置如下所示:
[root@pnmpg4 ~]# cat /etc/rsyncd.conf
max connections = 2
log file = /var/log/rsync.log
timeout = 300
[hadoop_out]
comment = hadoop_out
path = /mass1/mt_data/hadoop_out
read only = no
list = yes
uid = 502
gid = 502
auth users = syncuser
secrets file = /etc/rsyncd.secrets
hosts allow = X.X.X.X
Run Code Online (Sandbox Code Playgroud)
xinetd管理rsync守护进程:
[root@pnmpg4 ~]# cat /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc …Run Code Online (Sandbox Code Playgroud) 我rsync -a过去常常在文件系统上进行完整备份。它对 stderr 的输出是空的。我是否应该做一些额外的检查来验证备份是否成功?
例如,我如何进行校验和来验证?
rsync下次使用增量备份时,校验和的校验方式是否一样?增量备份会硬链接到全量备份中未更改的文件,这会不会导致增量备份成功后源和增量备份的校验和不同?
我的操作系统是 Ubuntu 12.04。谢谢。