Given that tar ignored my 2 sockets, how do I backup and then restore my login folder?

I did a network backup of my login area in preparation for reformatting the volume in which it resides to make it bootable on my old Power Mac G5 running the very latest release of Leopard.

Though I don't believe this symptom is a function of the actual tar invocation, here is the actual command for completeness:

   bill@r2d2-2:~
   [108] (sudo tar cf - -C /Volumes/usr1 Users) | gzip -c - | ssh whmcclos@mbp \
             'cat > /Volumes/link2TMS/r2d2_usr1_Users.tar.gz'
   tar: Users/bill/Library/Acrobat User Data/8.0_ppc/Synchronizer/Commands: socket ignored
   tar: Users/bill/Library/Acrobat User Data/8.0_ppc/Synchronizer/Notification: socket ignored

Here are the two socket files which tar is ignoring

bill@r2d2:~/Library/Acrobat User Data/8.0_ppc/Synchronizer
[11] ls -larhdt *
drwx------  3 bill  staff   102B Jun  4  2010 metadata
-rw-r--r--  1 bill  staff     0B Jan 20 13:05 adobesynchronizersu80
srwxr-xr-x  1 bill  staff     0B Jan 20 13:05 Notification
srwxr-xr-x  1 bill  staff     0B Jan 20 13:05 Commands

Haven't worked with creating sockets in a few years, and I'll know what to do once I get a hint. As the Title says, how do I backup and then restore these files given that tar has ignored them?


You don't.

Unix local sockets are created as soon as a program attempts to listen on the given path for connections, and despite being a type of file they only act as pointers to in-memory structures; so they are useful only as long as the program is still running (and only within the same machine; no NFS or anything such).

After the program exits, the socket file is no longer useful (and is normally deleted by the program itself); in fact, if the program gets restarted, it has to delete the old socket before listening on the same path – otherwise it would receive an "Address already in use" (the same as if two programs were trying to take the same TCP port).

This is somewhat different from named pipes (aka fifos), which work in a much simpler way (one process writes, one process reads) and therefore are reusable; a named pipe can be created using the mkfifo or mknod p … commands.