Rsync command

From WikiMLT

Copy a di­rec­to­ry

Re­cur­sive copy whole di­rec­to­ry – the di­rec­to­ry source-dir will be copied in­to the ex­ist­ing tar­get-dir:

rsync -r surce-dir target-dir/

Re­cur­sive copy a di­rec­to­ry con­tent – the con­tent of the source-dir will be copied as con­tent of the ex­ist­ing tar­get-dir:

rsync -r surce-dir/ target-dir/

Sync a di­rec­to­ry with an­oth­er

rsync -rv --delete --append ./music/ /media/<user>/sd-card

Re­cur­sive copy of a di­rec­to­ry over SSH

rsync --progress -vrazh <local-source> <ssh-host>:<remote-destination>
  • -v : ver­bose,
  • -r : copies da­ta re­cur­sive­ly (but don’t pre­serve time­stamps and per­mis­sion while trans­fer­ring da­ta,
  • -a : archive mode, archive mode al­lows copy­ing files re­cur­sive­ly and it al­so pre­serves sym­bol­ic links, file per­mis­sions, user and group own­er-ships and time­stamps,
  • -z : com­press file da­ta,
  • -h : hu­man-read­able, out­put num­bers in a hu­man-read­able for­mat.

Copy a file from a re­mote in­stance over SSH

rsync --progress -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \
<remote-host>:"/home/<remote-use>/backups/backup-${TODAY}.tgz" "$BACKUP_DIR"
  • The ssh op­tions are ap­pro­pri­ate for au­to­mat­ed so­lu­tions like cron jobs.

Ref­er­ences