Copy using tar and ssh

Here is a good way to copy filesystems between servers using ssh and tar. It is a bit more reliable than scp especially in the area of symbolic links and permissions)

To copy all of the files and subdirectories in the current working directory to the directory /target, use:

tar cf - * | ( cd /target; tar xfp -)

To copy files to a remote server (ie sending the files)
cd /WHERE_THE_FILES_ARE

tar cf - FILES | ssh USER@TARGETHOST " cd /WHERE_YOU_WANT_THE_FILES; tar xvpf - "


To copy files from a remote server (ie receiving the files)
cd /WHERE_YOU_WANT_THE_FILES

ssh USER@TARGETHOST " cd /WHERE_THE_FILES_ARE; tar cf - FILES " | tar xvpf -


If you are copying large amounts of files and data you may wish to exclude the v flag (for verbose) in the tar command

0 comments:

All views on this blog are my own. All hints, tips and scripts should be run and tested on your development and test servers before attempting in production.

About this blog

I have been DBA with over 10 years experience in Oracle. This blog aims to note interesting bits and pieces that I come across on a day to day basis.