J'ai MinGW (également connu sous le nom de «Git Bash» ) sur Windows 7, et un fichier de commandes qui exécute rsync pour sauvegarder des fichiers sur un disque externe sur un ordinateur Linux distant. Voici le fichier batch ( my_rsync_file.bat
)
REM Changing directory... (assuming we are in G:/My Documents/My Various Things)
cd ../
REM starting rsync...
bash -c "rsync -avzh -P --stats --timeout=60 --exclude Downloads . 'my_remote_linux_computer@128.95.170.200:/media/my_remote_linux_computer/LaCie/My\ Documents'"
Voici quelques explications ligne par ligne:
REM Changing directory... (assuming we are in G:/My Documents/My Various Things)
Cela émet juste un message pour me rappeler ce qui se passe.
cd ../
Cela change le répertoire d'un niveau au-dessus de l'endroit où se trouve le fichier de commandes (en «Mes documents»). Le fichier de commandes se trouve dans un lecteur externe sur mon ordinateur Windows. Je veux synchroniser tout le dossier «Mes documents» sur ce lecteur externe avec un dossier du même nom sur un lecteur externe sur mon ordinateur Linux distant.
REM starting rsync...
Imprime simplement un autre message.
bash -c "rsync -avz -P --stats --timeout=60 --exclude Downloads . my_remote_linux_computer@128.95.155.200:/media/my_remote_linux_computer/LaCie/My\\ Documents"
bash
: démarre MinGW qui a une bibliothèque rsync intégrée
-c
: pas sûr de ce que cela fait
rsync
: bibliothèque pour synchroniser les fichiers, est livré avec MinGW
-avzh
: a-Archive, v-Verbose, z-Compress, h-Human-readable, ce sont les options courantes (plus: http://linux.die.net/man/1/rsync )
-P
: affichez la progression des gros fichiers donc je sais si elle est figée ou non
--stats
: affichez le résumé du nombre de fichiers et d'octets transférés à la fin
--timeout=60
: tuez-le après 60 secondes s'il est bloqué,
--exclude
omettez les fichiers / répertoires de la synchronisation, dans ce cas, j'exclus un répertoire appelé 'Téléchargements'
.
: indique de synchroniser tout le contenu de 'Mes documents' (attendez-vous à ce que la chose spécifiée soit exclue dans la ligne ci-dessus)
my_remote_linux_computer
: nom de mon ordinateur Linux distant (pas son vrai nom;)
@128.95.155.200
: les adresses IP de mon ordinateur Linux distant, à partir de https://www.whatismyip.com/ (pas mon adresse IP réelle :)
/media/my_remote_linux_computer/LaCie/My\\ Documents
: le chemin d'accès au répertoire sur mon ordinateur Linux distant sur lequel je souhaite recevoir les fichiers. C'est un disque externe.
Notez que l'espace dans "Mes documents" est échappé avec deux barres obliques inverses, et le nom complet et le répertoire de la destination distante sont entourés de guillemets doubles.
Lorsque je commence à double-cliquer sur le fichier bat, on me demande le mot de passe de mon ordinateur Linux distant. Une fois terminé, j'obtiens une sortie récapitulative et je suis invité à appuyer sur n'importe quelle touche pour fermer.
-c
paramètre de bash man: Si l'option -c est présente, les commandes sont lues à partir de la chaîne. S'il y a des arguments après la chaîne, ils sont affectés aux paramètres positionnels, en commençant par $ 0.