Rsync

小於 26MB 的文件的奇怪 rsync samba btrfs 行為

  • April 14, 2022

我在我的樹莓派上創建了一個 btrfs 文件系統,其中包含一個簡單的子卷 Data01,用於共享以備份我的伺服器 我在樹莓派上創建了一個 samba 共享

之後,我通過 fstab 在我的 ubuntu 20.04 伺服器上安裝了 samba 共享,並嘗試將一些文件從伺服器同步到 raspi

乍一看它工作正常,但在第二次同步時,它看起來像 rsync 再次複製所有文件我以前從未使用過 rsync,所以我在伺服器上的文件夾中添加了一個大文件(3.2GB ISO),它只會複製一次但每次都會複製較小的文件

所以我接下來要做的是檢查 rsync 每次都停止複製文件的文件大小 它看起來像 26MB

所以在那之後我查看了統計數據,我可以看到較小的文件沒有正確的時間值

Datei: Zwergentrunk-1.pdf
 Gr▒▒e: 740838         Bl▒cke: 1448       EA Block: 4096   regul▒re Datei
Ger▒t: 2eh/46d  Inode: 4917        Verkn▒pfungen: 1
Zugriff: (0744/-rwxr--r--)  Uid: ( 1001/srvbackup)   Gid: ( 1001/srvbackup)
Zugriff    : 2022-04-06 21:16:26.471913500 +0200
Modifiziert: 2022-04-06 21:16:26.563488588 +0200
Ge▒ndert   : 2022-04-06 21:16:26.557414539 +0200
Geburt     : -

但更大的文件

Datei: ubuntu-20.04.4-desktop-amd64.iso
 Gr▒▒e: 3379068928     Bl▒cke: 6599744    EA Block: 4096   regul▒re Datei
Ger▒t: 2eh/46d  Inode: 4911        Verkn▒pfungen: 1
Zugriff: (0744/-rwxr--r--)  Uid: ( 1001/srvbackup)   Gid: ( 1001/srvbackup)
Zugriff    : 2022-04-06 18:40:32.667789400 +0200
Modifiziert: 2022-03-20 23:29:45.304778200 +0100
Ge▒ndert   : 2022-04-06 18:40:36.193852990 +0200
Geburt     : -

我希望有人有任何想法,最好的問候

raspi 上的 fstab(縮短)

UUID=1483d2ca-66f7-4fe4-9494-4802b078a30b       /mnt/Backup01   btrfs   defaults        0       1

配置文件

[global]
  workgroup = ESD
  dns proxy = no
  log file = /var/log/samba/log.%m

  max log size = 1000
  syslog = 0
  panic action = /usr/share/samba/panic-action %d
  server role = standalone server
  passdb backend = tdbsam
  obey pam restrictions = yes
  unix password sync = yes

  passwd program = /usr/bin/passwd %u
  passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

  pam password change = yes
  map to guest = bad user
  usershare allow guests = yes


[homes]
  comment = Home Directories
  browseable = no
  read only = yes
  create mask = 0700
  directory mask = 0700
  valid users = %S

[printers]
  comment = All Printers
  browseable = no
  path = /var/spool/samba
  printable = yes
  guest ok = no
  read only = yes
  create mask = 0700

[print$]
  comment = Printer Drivers
  path = /var/lib/samba/printers
  browseable = yes
  read only = yes
  guest ok = no

[Backup01-Data01]
       path= /mnt/Backup01/Data01
       browsable = yes
       read only false
       guest ok = no
       inherit acls = no
       inherit permissions = yes
       ea support = no
       store dos attributes = no
       printable = no
       #create mask = 0664
       #force create mode 0664
       #directory mask = 0775
       #force directory mode = 0775
       hide special files = yes
       follow symlinks = yes
       hide dot files = yes
       valid users = srvbackup
       invalid users =
       read list = srvbackup
       write list = srvbackup
       force user=srvbackup

伺服器上的 fstab(縮短)

//officebeere/Backup01-Data01 /mnt/Backup01-Data01 cifs _netdev,uid=1000,gid=1000,username=srvbackup,password=**********  0  0

rsync 命令

sudo rsync -avit --no-p  --progress --delete Zwergentrunk/ /mnt/Backup01-Data01/

更新:

我已經測試了更多,我可以說這不是 btrfs 問題(用其他 HDD 和 ext4 測試仍然是同樣的問題)這不僅是使用 rsync,嘗試使用 cp -a 或 cp -preserver=timestamps –> 同樣的問題,但是與副本略有不同,我可以先看到正確的修改日期,然後將其更改

我嘗試從 Windows 複製和粘貼 –> 修改日期是正確的

但是使用 touch -r sourefile destfile,我得到了正確的日期,因此可以使用解決方法

我希望有人有更好的解決方案,我認為這是 Samba 伺服器或掛載 smb 共享問題

Mount 說這是我的 Mount 選項

//officebeere/Backup01-Data01 on /mnt/Backup01-Data01 type cifs (rw,relatime,vers=3.1.1,cache=strict,username=srvbackup,uid=1000,noforceuid,gid=1000,noforcegid,addr=192.168.1.5,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=4194304,wsize=4194304,bsize=1048576,echo_interval=60,actimeo=1,_netdev)

好的,我找到了,這是 Samba 中的一個錯誤,所以我檢查了版本併升級到最新的 Raspberry OS,它現在可以工作了

引用自:https://unix.stackexchange.com/questions/698273