Điều này không giống với câu trả lời của Peter, nhưng cung cấp cho người dùng tùy chọn tệp từ xa nào anh ta muốn và nơi anh ta muốn lưu nó (cũng như thực hiện rsync qua ssh). Thay thế USER và HOST bằng tên người dùng và máy chủ của bạn tương ứng.
#! / bin / bash
echo -e "Vui lòng nhập đường dẫn tệp đầy đủ (đã thoát):"
đường dẫn đọc -r
tiếng vang "Đường dẫn: $ đường dẫn"
echo -e "Nhập đích:"
đọc -r dst
tiếng vang "Điểm đến: $ dst"
trong khi [1]
làm
rsync --proceed --partial --append -vz -e ssh "USER @ HOST: $ path" $ dst
nếu ["$?" = "0"]; sau đó
tiếng vang "rsync hoàn thành bình thường"
lối ra
khác
echo "rsync fail. Đang thử lại sau một phút ..."
ngủ 60
fi
làm xong
Các tùy chọn rsync được sử dụng ở đây cho phép thống kê tiến trình trong quá trình chuyển, lưu tệp một phần khi gặp sự cố không mong muốn và khả năng nối thêm các tệp đã hoàn thành một phần khi tiếp tục. Tùy chọn -v làm tăng tính dài dòng, tùy chọn -z cho phép nén (tốt cho kết nối chậm, nhưng yêu cầu nhiều năng lượng cpu hơn ở cả hai đầu) và tùy chọn -e cho phép chúng tôi thực hiện chuyển khoản này qua ssh (mã hóa luôn tốt).
Lưu ý: Chỉ sử dụng điều này nếu bạn đã bật đăng nhập khóa chung với ssh của mình, nếu không, nó sẽ yêu cầu bạn nhập mật khẩu khi khởi động lại (giết tất cả chức năng của tập lệnh).
while ./run_script; do echo "Retrying..."; done; echo "Done."
Đảm bảorun_script
lợi nhuận0
thành công.