ssh tar复制 – 缺less文件

使用以下命令将目录“home”(从远程计算机)复制到本地计算机:

ssh [email protected] 'tar -cz -C /home/*' | tar -zxv 

交易后的文件数量不匹配。 有些文件从不复制。

任何人都遇到类似的问题?

使用tar复制文件的一个问题是旧的POSIX tar格式( ustar )有100个字节的有限长度来存储硬链接。 它可以应付更长的名字 ,所以只要你的文件有一个单一的链接,一切都很好。 但是当tar再次遇到一个inode时,它会产生一个硬链接logging,只有100个字节的名字。 如果名称太长,则第二个链接不会存储在存档中。

我记得tar的实现,丢弃这些链接与诊断消息,但仍然退出状态为0.也许你的焦油更糟糕,并默默地丢弃它们。

新的POSIX tar格式( pax )没有这个限制。 尝试使用pax代替tar ,或使用正确的选项tar 。 GNU tar的当前版本默认为pax格式,并且如果被告知产生名称不适合的ustar归档文件,则会正常投诉。

改用rsync。 这是更快,更安全。

 rsync -avuz [email protected]:/home/ /srv/backups/home/ 

然后你可以压缩数据。

 tar cvzf /srv/backups/home_`date +%F`.tgz -C /srv/backups home