Articles of rsync

不能从java执行rsync

Process p; String cmd = "rsync –timeout=20 -v -r -E -e \"ssh -o StrictHostKeyChecking=no -i " + "/usr/local/my.pem\"" + " root@<IP>:/usr/local/test/ /other/test"; try { p = Runtime.getRuntime().exec(cmd); System.out.println("going to exec1"); int val = p.waitFor(); } 当我尝试上面的代码, rsync不起作用, val = 1 。 而如果我尝试直接在ternimal cmd值,它工作正常。 代码有什么问题? 编辑 String[] cmd = new String[]{"rsync", "–timeout=20", "-v", "-r", "-a", "-E", […]

通过execvp运行rsync:StrictHostKeyChecking = no:未知选项

我想通过StrictHostKeyChecking选项通过execvp运行rsync。 这是我的代码: #include <unistd.h> int main() { char *argv[] = {"rsync", "remote_user@1.2.4.5:/tmp", "/home/tmp/", "-e 'ssh -o StrictHostKeyChecking=no'", 0}; execvp("rsync", argv); } 我得到这个错误: rsync:-e'-o StrictHostKeyChecking = no':未知选项rsync错误:main.c(1422)[client = 3.0.6] 我试过另一种方式: #include <unistd.h> int main() { char *argv[] = {"rsync", "remote_user@1.2.4.5:/tmp", "/home/tmp/", "-e", "'ssh -o StrictHostKeyChecking=no'", 0}; execvp("rsync", argv); } 但是现在它失败了,错误: rsync:无法执行ssh -o StrictHostKeyChecking = no:没有这样的文件或目录(2)rsync错误:pipe.c(84)处的IPC代码(代码14)错误[sender = […]

期望带有引号的rsync脚本

我想rsync一个文件夹到另一台机器。 sshpass不是一个选项,证书也不是。 所以我坚持期待。 到目前为止,我有这个bash脚本(最小化)。 read -p "Enter remote IP: " IP read -p "Enter remote user: " USER read -s -p "Enter remote password: " PASSWORD expect <<EOF set timeout -1 spawn rsync -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \ -aHv –exclude=".*/" –delete ../.. ${USER}@${IP}:~/destination expect "password: " send "${PASSWORD}\n" expect eof EOF 问题是,rsync不尊重“–exclude”选项。 在标准输出中,我看到: […]

强制rsync比较本地文件而不是校验和

我写了一个Bash脚本来备份一个文件夹。 脚本的核心是一个rsync指令 rsync -abh –checksum /path/to/source /path/to/target 我正在使用–checksum因为我不想依赖文件大小或修改时间来确定是否需要备份源path中的文件。 但是,大部分(如果不是全部的话)我在本地运行这个脚本的时候,也就是说,连接了包含备份目标文件夹的外部USB驱动器; 没有networking备份。 因此,不需要增量转换,因为两个文件将被完全由同一台机器读取和处理。 在这种情况下,计算校验和甚至会降低速度。 如果rsync只是将这些文件都存储在本地,那么会更好。 在阅读manpage后,我偶然发现了–whole-file选项,这似乎避免了昂贵的校验和计算。 该联机帮助页还指出,如果源和目标是本地path,则这是默认值。 所以我想改变我的rsync语句 rsync -abh /path/to/source /path/to/target 请问rsync现在会逐字节检查本地源文件和目标文件,还是使用修改时间和/或大小来确定是否需要备份源文件? 我绝对不想依靠文件大小或修改时间来决定是否应该进行备份。 UPDATE 注意rsync指令中的-b选项。 这意味着目标文件将被replace之前备份。 所以, 盲目地 rsync来源文件夹中的所有文件,例如通过提供注释中build议的–ignore-times ,不是一个选项。 这会造成太多的重复文件和浪费的存储空间。 请记住,我正试图减less本地机器上的备份时间和工作量。 只是备份一切就会挫败这个目的。 所以我的问题可以改写为rsync能够逐字节地进行文件比较?

shell脚本rsync密码文件选项

在shell脚本中如何使用rsync –password-file选项 rsync -a root@123.123.12.3:/root /backup

限制shell命令

我用bash shell创build了一个用户名 – 一个普通的shell,所有命令都可用 – 但是我打算把这个shell用于备份服务,这个服务只允许rsync命令。 因此,我试图限制这个shell只执行rsync命令。 我怎样才能做到这一点与.bash_profile和.bashrc ? 附加信息:该shell仅用于备份文件和文件夹。 我使用ssh密钥连接另一个shell到rsync 。

rsync和(后)进程同步文件

我喜欢rsync我的照片从一个(linux)光盘分区到另一个(备份位置)使用shell脚本。 问题是,我需要重新缩放保存在备份位置的所有照片,例如用mogrify 。 是否有可能后处理每个文件,这是由rsync同步/复制? 在每个同步文件执行mogrify ? 另一种方式可以使用rsync(only)来生成必须同步的文件列表。 下一步:运行一个循环来mogrify每个列表条目,以便将缩放的照片输出到备份位置。 问题是,我必须添加所有的目录和子目录以保存照片之前的原始文件夹结构。 使用rsync将处理“即时”的文件夹创build。 所以:是否有可能对每个与rsync同步的文件执行命令?

rsync详细与最终的统计数据,但没有文件列表

我看到,当我使用-v选项使用rsync时,它会在最后打印更改的文件列表和一些有用的信息,如总传输大小。 是否有可能削减第一(长)部分,只是打印数据? 我在脚本中使用它,日志不应该这么长。 只有统计是有用的。 谢谢。

如何轻轻地杀死rsync?

我正在大量的文件上运行rsync,我想杀掉进程而不留下任何部分文件。 有没有办法轻轻地杀死这个过程? 我一直在查看rsync和kill的联机帮助页,但我无法确定SIGSTOP或SIGTERM是否允许rsync在终止之前完成其当前文件。

rsync ssh无法连接

尝试使用以下命令通过rsync连接下载文件时: rsync -Pav http://some.domainname.com/file.tar.gz 下面的错误给了我 ssh: Could not resolve hostname http: Connection timed out rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] rsync error: unexplained error (code 255) at io.c(605) [Receiver=3.0.9] 如果我尝试使用ftp命令下载相同的文件,它可以正常工作。 如果我尝试从另一个networking上的PC使用rsync命令,而这也工作正常,所以它似乎是环境的东西。 客户端客户端PC位于代理服务器的后面,但所有的代理地址细节已经被添加到系统中,并且我能够浏览,ftp和ssh到testing服务器上而没有任何问题。 有什么可能阻止rsync运行?