rsync 无法将文件写入其创建的文件夹

rsync 无法将文件写入其创建的文件夹

正如标题所述,Rsync 无法将文件复制到 Rsync 本身在几秒钟前创建的文件夹中。我认为这可能是curlftpfs挂载 ftp 文件夹的 的问题。


我试图在包含带点的名称的文件夹中创建一个文件,就像daily.0touch /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(至少默认情况下)不提供传输级加密,并且数据在网络上以明文形式传输?您的备份是否包含敏感数据?您是否测试过这些备份是否可以用于恢复?

相关内容