27

I'm using below command to transfer files cross server

scp -rc blowfish /source/directory/* username@domain.net:/destination/directory

Is there a way to transfer only files modified files just like update command for cp?

51

rsync is your friend.

rsync -ru /source/directory/* username@domain.net:/destination/directory

If you want it to delete files at the destination that no longer exist at the source, add the --delete option.

  • 4
    Although, if you are syncing to a web server and that server caches HTML, you might not want to use --delete, since visitors on a stale page might request an asset that no longer exists. – Jackson May 24 '16 at 21:56
  • @Jackson a clean process will not include variable data like caches or configs in the sources. – Chris Pillen Nov 17 '18 at 7:40
  • In some cases I have deal with servers outside of my domain that don't have rsync but have scp. Is there a comparable solution, even if it needs a few lines of scripting? – iX3 Dec 21 '18 at 14:58
-1

Generally one asks for scp because there is a reason. I.e. can't install rsyncd on the target.

files=`find . -newermt "-3600 secs"`

for file in $files
do
       sshpass -p "" scp "$file" "root@$IP://usr/local/www/current/$file"
done

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.