基本上我要问的是,有没有人遇到过将 rsync 包装在 ssh 中的方法。
使用 OpenSSH v4.9+ sftp 有一些不错的选项,允许您对传入的连接进行 chroot 等 - 这是我会考虑的解决方案,但是我坚持使用 RHEL,并且 RHEL4 或 RHEL5 都不支持该版本SSH。
我目前的解决方案是使用客户端用户的密钥向服务器端添加这样的东西......
server% cat ~/.ssh/authorized_keys command="cd /srv/rsync/etl && tar --exclude './lost+found' -pcf - ./" ssh-rsa...
......因此客户端将被限制为一件事,只有一件事......
客户端% ssh -T -i ${HOME}/.ssh/id_rsa oracle@database.com > sensative.tar
这确保了连接以及服务器(来自客户端)的安全,但是效率低下,因为将一遍又一遍地检索所有文件。
我正在使用 rsync 做类似(或更好)的事情。
我正在尝试使用以下命令将所有较新的 jpg 从一个文件夹复制到另一个文件夹
cp -u --force /home/oldfolder/*.jpg /home/newfolder/
Run Code Online (Sandbox Code Playgroud)
我得到以下提示:
cp: overwrite `/home/newfolder/4095-181.jpg'?
Run Code Online (Sandbox Code Playgroud)
我知道的“-u”工作正常,因为它只提示我使用较新的文件,但我不想得到提示,我只是想让它覆盖它们。我试过 --force 和 -f
有什么建议?
提前致谢
我想将 svn 存储库中修改过的文件复制到另一个目录,同时保留它们的目录结构。
阅读 awk 和 xargs 联机帮助页后,我找到了一种方法来更改文件名,如下所示:
$ svn status -q | awk '{ print $2 }' | xargs -d \\n -I '{}' cp '{}' /tmp/xen/
Run Code Online (Sandbox Code Playgroud)
但问题是,以这种方式不保留目录结构,我想复制这样的文件:
./common/superp.c -> /tmp/xen/common/superp.c
./common/m2mgr.c -> /tmp/xen/common/m2mgr.c
./common/page_alloc.c -> /tmp/xen/common/page_alloc.c
./arch/x86/mm.c -> /tmp/xen/arch/x86/mm.c
./arch/x86/mm/shadow/private.h -> /tmp/xen/arch/x86/mm/shadow/private.h
Run Code Online (Sandbox Code Playgroud)
我试图将 cp 命令更改为cp '{}' /tmp/xen/'{}'但它说没有这样的文件或目录。如果需要,有没有办法制作cp复制文件并创建目录?并请指出是否可以简化此命令链。:-)
感谢你的回复。由于目录有点大,我不想使用cp -R或rsync复制整个目录。CK 使用 tar 管道的建议非常有用。
svn status -q | awk '{ print $2 }' | xargs tar cf - | (cd /tmp/xen/; tar xvf -)
Run Code Online (Sandbox Code Playgroud) 我需要复制很多文件。通常我使用 rsync 是因为我向它传递了-aP选项,我可以看到 (a) 有多少文件需要处理,以及 (b) 每个单独的文件有多少被复制。
然而,rsync 还使用校验和做很多事情来验证文件是否被复制。但是我现在真的不需要那个。但是正常cp不包括上面提到的剩余文件数,这是非常有帮助的。
有没有类似的东西cp包括剩余多少文件的进度,但没有那么重rsync?
通过 ssh 在服务器上复制文件的最佳方法是什么?
就我而言:我说的是复制 magento 商店。(15000 个文件 ~ 50MB)
cp -a source destination
Run Code Online (Sandbox Code Playgroud)
需要几个小时......(在我的情况下,服务器是 2.4 Xeon,2GB RAM)
我有一个以连续数字作为后缀的文件列表。我只想复制这些文件的一部分。如何将范围指定为 cp 命令的一部分。
$ls
P1080272.JPG* P1080273.JPG* P1080274.JPG* P1080275.JPG* P1080276.JPG* P1080277.JPG*
P1080278.JPG* P1080279.JPG* P1080280.JPG* P1080281.JPG* P1080282.JPG* P1080283.JPG*
Run Code Online (Sandbox Code Playgroud)
我想将文件从 P1080275.JPG 复制到 P1080283.JPG,内容类似于:
$cp P10802[75-83].JPG ~/Images/.
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
背景:我正在复制一个大小为 200GB,但分配了 16GB 块的稀疏 qcow2 VM 映像。我尝试了各种方法来在同一服务器中复制这个稀疏文件,并获得了一些初步结果。环境为 RHEL 6.6 或 CentOS 6.6 x64。
ls -lhs srcFile
16G -rw-r--r-- 1 qemu qemu 201G Feb 4 11:50 srcFile
Run Code Online (Sandbox Code Playgroud)
通过 cp - 最佳速度
cp --sparse=always srcFile dstFile
Performance Notes:
Copied 200GB max/16GB actual VM as 200GB max/26GB actual, bloat: 10GB
Copy time: 1:02 (mm:ss)
Run Code Online (Sandbox Code Playgroud)
Via dd - 最佳整体表现者
dd if=srcFile of=dstFile iflag=direct oflag=direct bs=4M conv=sparse
Performance Notes:
Copied 200GB max/16GB actual VM as 200GB max/21GB actual, bloat: 5GB
Copy time: 2:02 (mm:ss) …Run Code Online (Sandbox Code Playgroud) 我有 1 个源服务器,其中包含我想复制到其他 7 个服务器的大约 30GB 的文件。我目前将文件 SCP 转移到前四台服务器,并在传输完成后将 SCP 转移到最后 3 台服务器。
使用 BitTorrent 将文件一次分发给所有 7 个人会更快吗?每个服务器之间的内部连接已经快速且一致。我知道这可能会减轻源服务器的一些负担,但是分发文件是否需要更长的时间?
我可以从 shell 使用什么好的脚本化客户端?我希望每个人都在 100% 后停止播种。
我正在尝试查找我认为 Windows Vista 中存在的旧 Windows 功能的名称和文档。
我能记得的只有这个。当您或应用程序尝试写入没有足够写入权限的文件时,Windows 会在您的 APPDATA? 目录。
您没有收到错误,并且您相信内容已写入,但实际上,它不是,至少在您期望的地方。
请尝试帮助我尝试了解此功能是否曾经存在。
大多数指南推荐使用 mysqldump 和简单的 SQL 将一个表复制到另一个数据库。linux shell cp怎么样?我可以简单地做吗
cp /db1/mytable.frm /db2/mytable.frm