Tôi có MinGW (còn được gọi là 'Git Bash' ) trên Windows 7 và một tệp bó chạy rsync để sao lưu các tệp trên ổ đĩa ngoài trên máy tính linux từ xa. Đây là tệp bó ( 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'"
Dưới đây là một chút giải thích từng dòng:
REM Changing directory... (assuming we are in G:/My Documents/My Various Things)
Điều này chỉ phát ra một thông điệp để nhắc nhở tôi những gì đang xảy ra.
cd ../
Điều này thay đổi thư mục một cấp lên từ nơi tệp bó (đến 'Tài liệu của tôi'). Tệp bó nằm trong một ổ đĩa ngoài trên máy tính Windows của tôi. Tôi muốn đồng bộ tất cả thư mục 'Tài liệu của tôi' trên ổ đĩa ngoài này với một thư mục cùng tên trên một ổ đĩa ngoài trên máy tính linux từ xa của tôi.
REM starting rsync...
Chỉ cần in một tin nhắn khác.
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
: bắt đầu MinGW có thư viện rsync tích hợp
-c
: không chắc đây là gì
rsync
: thư viện để đồng bộ hóa các tệp, đi kèm với MinGW
-avzh
: a-Archive, v-Verbose, z-Compress, h-Human-read, đây là những tùy chọn phổ biến (xem thêm: http://linux.die.net/man/1/rsync )
-P
: hiển thị tiến trình cho các tệp lớn để tôi biết liệu nó có bị đóng băng hay không
--stats
: hiển thị tóm tắt về số lượng tệp và byte được chuyển ở cuối
--timeout=60
: giết nó sau 60 giây nếu nó bị kẹt
--exclude
bỏ qua các tệp / thư mục bị đồng bộ hóa, trong trường hợp này tôi loại trừ một thư mục có tên 'Tải xuống'
.
: biểu thị đồng bộ hóa tất cả nội dung của 'Tài liệu của tôi' (mong muốn điều được chỉ định loại trừ trong dòng trên)
my_remote_linux_computer
: name của máy tính linux từ xa của tôi (không phải tên thật của nó;)
@128.95.155.200
: địa chỉ IP của máy tính linux từ xa của tôi, từ https://www.whatismyip.com/ (không phải địa chỉ IP thực tế của tôi :)
/media/my_remote_linux_computer/LaCie/My\\ Documents
: đường dẫn đến thư mục trên máy tính linux từ xa mà tôi muốn nhận tệp. Đó là một ổ đĩa ngoài.
Lưu ý rằng không gian trong "Tài liệu của tôi" được thoát bằng hai dấu gạch chéo ngược và tên đầy đủ và thư mục của đích từ xa được bao quanh bởi dấu ngoặc kép.
Khi tôi bắt đầu nhấp đúp vào tập tin bat tôi được nhắc nhập mật khẩu cho máy tính linux từ xa của tôi. Khi nó hoàn thành, tôi nhận được một số đầu ra tóm tắt và được nhắc nhấn bất kỳ phím nào để đóng.
-c
tham số từ bash man: Nếu có tùy chọn -c, thì các lệnh được đọc từ chuỗi. Nếu có các đối số sau chuỗi, chúng được gán cho các tham số vị trí, bắt đầu bằng $ 0.