У меня есть MinGW (также известный как «Git Bash» ) в Windows 7 и командный файл, который запускает rsync для резервного копирования файлов на внешний диск на удаленном компьютере с Linux. Вот командный файл ( 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'"
Вот немного построчное объяснение:
REM Changing directory... (assuming we are in G:/My Documents/My Various Things)
Это просто выдает сообщение, чтобы напомнить мне, что происходит.
cd ../
Это изменяет каталог на один уровень выше, где находится пакетный файл (на «Мои документы»). Пакетный файл находится на внешнем диске на моем компьютере с Windows. Я хочу синхронизировать все папки «Мои документы» на этом внешнем диске с папкой с тем же именем на внешнем диске на моем удаленном компьютере с Linux.
REM starting rsync...
Просто печатает другое сообщение.
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: запускает MinGW, который имеет встроенную библиотеку rsync
-c: не уверен, что это делает
rsync: библиотека для синхронизации файлов, поставляется с MinGW
-avzh: a-Archive, v-Verbose, z-Compress, h-Human-readable, это общие параметры (подробнее: http://linux.die.net/man/1/rsync )
-P: показать прогресс для больших файлов, чтобы я знал, заморожен он или нет
--stats: показать итоговое количество файлов и байтов, переданных в конце
--timeout=60: убить его после 60 секунд, если он застрянет,
--excludeпропустите файлы / каталоги из синхронизации, в этом случае я исключаю каталог с именем «Загрузки»
.: указывает на синхронизацию всего содержимого «Моих документов» (ожидаю, что указанную вещь исключить в строке выше)
my_remote_linux_computer: name моего удаленного компьютера с Linux (не настоящее имя;)
@128.95.155.200: IP-адреса моего удаленного компьютера Linux, с https://www.whatismyip.com/ (не мой фактический IP-адрес :)
/media/my_remote_linux_computer/LaCie/My\\ Documents: путь к каталогу на моем удаленном компьютере Linux, который я хочу получать файлы. Это внешний диск.
Обратите внимание, что пробел в «Моих документах» экранируется двумя обратными слешами, а полное имя и каталог удаленного места назначения заключены в двойные кавычки.
Когда я запускаю двойной щелчок мышью по файлу bat, мне предлагается ввести пароль для моего удаленного компьютера с Linux. Когда он завершается, я получаю некоторые сводные данные и мне предлагается нажать любую клавишу для закрытия.
-cпараметра от bash man: Если опция -c присутствует, то команды читаются из строки. Если после строки есть аргументы, они присваиваются позиционным параметрам, начиная с $ 0.