Riccardo Mollo – Informatica e Fotografia

Copia precisa e completa di files e directories tra due macchine tramite ssh + rsync

banner-copia-precisa-e-completa-di-files-e-directories-tra-due-macchine-tramite-ssh-rsync
Diverse volte ho avuto la necessità di copiare, anche più volte in modo da mantenere le situazioni allineate, una o più directories in maniera ricorsiva da una macchina ad un’altra, con l’obbligo di preservare i permessi, i link simbolici ed in generale le condizioni dei files (ES: se sulla macchina sorgente un file viene rinominato/cancellato, esso dev’essere rinominato/cancellato anche sulla macchina di destinazione).

Condivido qui un piccolo script per BASH che, utilizzando ssh e rsync, può servire sia come esempio che come spunto per ottenere il risultato voluto. La macchina su cui si esegue lo script va intesa come la macchina sorgente.

#!/bin/bash

# The following line enables the large address-space model on IBM AIX systems
#export LDR_CNTRL=MAXDATA=0xD0000000@DSA

SRCDIR=/home/test # local directory that needs to be copied on the remote machine
DSTDIR=/tmp/test # directory on the remote machine that will contain all the files from local directory
RMTHST=server2.remote.test # remote machine
RMTUSR=johnsmith # user on remote machine
LOGDIR=/tmp # directory on local machine that holds the log files
LOGFILE=${LOGDIR}/test.log # log file

nohup time rsync -arvHu --delete --progress --stats --no-inc-recursive -e ssh ${SRCDIR}/ ${RMTUSR}@${RMTHST}:${DSTDIR}/ > ${LOGFILE} 2>&1

Naturalmente, affinchè lo script funzioni senza che venga richiesta la password, bisogna aver prima abilitato la SSH key-based authentication per gli utenti coinvolti.

Lascia un commento

Scroll To Top