11

I'm trying to move my emails Maildir from an old CentOS server to a new Debian server.

rsync -avz /home/me/Maildir ssh root@ipaddress:/var/vmail/me/Maildir

I tried to copy a 8GB account, didn't work, try to move another about 20mb, didn't work, tried to use -avn, didn't work either.

sync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]
4
  • What do the previous errors say?
    – jordanm
    Apr 13, 2013 at 1:39
  • 4
    @jordanm there's no previous error, it just says that there's a previous error, but i haven't seen any error
    – Lynob
    Apr 13, 2013 at 13:23
  • 2
    If you have a large log file and can't spot the error, I found searching for the string rsync: would turn it up.
    – duozmo
    Jan 17, 2022 at 2:02
  • Thank you @duozmo ! I was searching for "error" like an idiot. Why did I think that errors would state themselves as "errors" anyway? XD
    – boumbh
    Jan 24, 2022 at 19:03

2 Answers 2

5

Error 23 is defined as a "partial transfer" and might be caused by filesystem incompatibilities, such as different character sets or access control lists. In this case, it could be caused by files in /home that begin with a . and are thus marked hidden.

In this case you could try something like:

rsync -avz --exclude='/*/.local' /home/me/Maildir ssh root@ipaddress:/var/vmail/me/Maildir

The verbose argument -v should actually give you some sort of list of the problems.

From official documentation:

  • 23 -⁠ Partial transfer due to error
3
  • the above line gave the same error
    – Lynob
    Apr 13, 2013 at 13:23
  • 1
    The above line was meant as an example how to exclude one hidden directory, if you have more you probably have to adjust the line.
    – superuser0
    Apr 13, 2013 at 13:43
  • i needed to changed the permissions of the directories as well
    – Lynob
    Apr 14, 2013 at 9:57
0

You could try passing one or a combination of --perms --no-owner --no-group. This allows you to copy / override source permissions on the destination, while --no-owner and --no-group ignore owner and group permissions respectively (which can be likely since the destination may not know that user & groups).

If you'd like to override those permissions for the target system, use --chmod=ugo=,u+rwx,g+rw,o+r. In this example I gave the executing User / Owner rwx, his Group rw and Others r (Initial ugo=, unsets all flags).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .