Re: Copy Linux Filesystem/Check/Compare Filesystems
Once upon a time Doug MacFarlane said...
>
> I will shortly need to copy about 100 gb of data from one filesystem to
> another. [...]
>
> Any suggestions? Just exactly how would one tar one filesystem to another,
> without the intermediate tar file?
I've done it using cpio(1), since tar didn't like the unix domain
sockets in /var/spool/postfix/private.
I've attached the script I now use to copy all my filesystems or trees
around the place. The script does not cross filesystem boundaries, but
it is easily modified to do that.
> Also, once the copy is complete, I'd love a tool that would compare the two
> filesystems, including crc or md5 checksums on each file, to make sure that
> they are, in fact, identical.
Can't help here, sorry.
#!/bin/bash
if [ $# -ne 2 ] ; then
echo "Usage: $0 <source_dir> <dest_dir>" >&2
echo "eg: \"$0 /var /mnt\" will create /mnt/var"
echo "eg: \"$0 /var/spool /mnt\" will create /mnt/spool"
echo "eg: \"$0 /var/spool /mnt/var\" will create /mnt/var/spool"
echo "eg: \"$0 / /mnt\" will copy the root fs to /mnt"
exit 1
fi
if [ \! -d "$2" ] ; then
echo "$2 is not a directory" >&2
exit 2
fi
dir_source=$(dirname "$1")
base_source=$(basename "$1")
(
cd "$dir_source"
find "$base_source" -xdev \! -name lost+found |
cpio --create \
--reset-access-time \
--quiet \
--format=newc
) | (
cd "$2"
cpio --extract \
--preserve-modification-time \
--no-absolute-filenames \
--quiet
)
Reply to: