正如标题所述,Rsync 无法将文件复制到 Rsync 本身在几秒钟前创建的文件夹中。我认为这可能是curlftpfs
挂载 ftp 文件夹的 的问题。
我试图在包含带点的名称的文件夹中创建一个文件,就像daily.0
我touch /mnt/ftp/.../daily.0/test.txt
可以创建它一样。
当我使用编辑器时,会出现nano
以下消息[ Error writing lock file /mnt/ftp/.../daily.0/.test.txt.swp: Operation not supported ]
,但它会创建它。如果我使用编辑器,vi
终端会冻结。
如果我创建文件夹、复制或移动文件,则没有问题。
我给你留下一些额外的信息:
curlftpfs
curlftpfs -o utf8 -o allow_other ${FTP_USER}:${FTP_PASSWD}@${FTP_HOST} /mnt/ftp -v; grep -qs '/mnt/ftp ' /proc/mounts
它已使用 rsync 3.1.2 和 3.2.7 进行了测试。我也尝试过仅使用 rsync,但它也无法创建文件。
rsnapshot(rsnapshot_ftp.conf 的一部分)
rsync_long_args --delete --delete-excluded --no-owner --no-group --no-perms --no-times --modify-window=3602
backup /persistence/backups/tmp/ ./
输出至 rsnapshot: /usr/bin/rsnapshot -c /etc/rsnapshot_ftp.conf daily;
require Lchown
Lchown module loaded successfully
Setting locale to POSIX "C"
echo 6659 > /var/run/rsnapshot.pid
mkdir -m 0700 -p /mnt/ftp/...
...
mkdir -m 0755 -p /mnt/ftp/.../daily.0/
/usr/bin/rsync -av --delete /persistence/backups/tmp/ /mnt/ftp/.../daily.0/./
rsync: mkstemp "/mnt/ftp/.../daily.0/.backup_to_ftp.tar.lmLoNR" failed: Operation not supported (95)
rsync: mkstemp "/mnt/ftp/.../daily.0/.backup2_to_ftp.tar.lmJrSC" failed: Operation not supported (95)
sent 604,429,298 bytes received 2,640 bytes 172,694,839.43 bytes/sec
total size is 604,280,067 speedup is 1.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1205) [sender=3.1.3]
WARNING: Some files and/or directories in /persistence/backups/tmp/ only transferred partially during rsync operation
/usr/bin/logger -p user.err -t rsnapshot[6659] WARNING: Some files and/or \
directories in /persistence/backups/tmp/ only transferred partially \
during rsync operation
touch /mnt/ftp/.../daily.0/
rm -f /var/run/rsnapshot.pid
/usr/bin/logger -p user.err -t rsnapshot[6659] WARNING: /usr/bin/rsnapshot \
-c /etc/rsnapshot_ftp.conf daily: completed, but with some warnings
与 rsnapshot 的功能相同,但是在 rsync 命令(+/-)中:
mkdir -m 0755 -p /mnt/ftp/.../daily.0/
/usr/local/bin/rsync -va --delete --numeric-ids --delete-excluded /persistence/backups/tmp/ /mnt/ftp/.../daily.0/./
...
rsync: [receiver] mkstemp "/mnt/ftp/.../daily.0/.backup_to_ftp.tar.1HGJ8m" failed: Operation not supported (95)```
...
sent 603,661,017 bytes received 393 bytes 241,464,564.00 bytes/sec
total size is 603,512,067 speedup is 1.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1336) [sender=3.2.7]
欢迎任何帮助!
我已经花了很多时间,我开始认为它rsync
无法ext4
继续使用curlftpfs
...NTFS
请随意发表关于如何在不使用 rsync 的情况下执行 rsnapshot 之类的操作的意见
答案1
线索就在这里:
rsync: mkstemp "/mnt/ftp/.../daily.0/.backup_to_ftp.tar.lmLoNR" failed: Operation not supported (95)
它告诉您远程系统 - 或用于访问它的一个工具 - 无法处理指定的文件名。
我猜想远程系统无法处理以点开头的文件名。你可以自己轻松测试一下:
date >/mnt/ftp/…/.test
如果是这种情况,rsync
只需使用标志来解决此错误行为即可。--inplace
使用此选项有缺点,这就是为什么它不是默认选项(阅读man rsync
详细信息)。
现在来谈谈观点。尝试直接通过 FTP 服务运行备份生成似乎充满了不必要的复杂性。您是否知道 FTP(至少默认情况下)不提供传输级加密,并且数据在网络上以明文形式传输?您的备份是否包含敏感数据?您是否测试过这些备份是否可以用于恢复?