it-swarm-vi.com

Làm cách nào tôi có thể tạm dừng / tiếp tục rsync

Làm cách nào tôi có thể tạm dừng một rsync đang chạy?

Lần đầu tiên tôi đã làm Ctrl+C để giết nó và sử dụng -P cờ để chạy lại. Đây có phải là dễ bị hỏng việc chuyển tập tin hiện tại?

Lần thứ hai tôi chỉ cần đặt MacOS vào chế độ ngủ (bằng cách đóng nắp). Nhìn vào quá trình đang chạy, tôi có thể thấy 2 (không chắc tại sao) với trạng thái 'S'.

Đã thử sử dụng

kill -SIGCONT

để tiếp tục quá trình, nhưng nó không có hiệu lực.

52
qnoid

Bạn có thể tạm dừng bất kỳ chương trình nào bằng cách gửi tín hiệu TSTP (lịch sự) hoặc STOP (cưỡng bức). Trên thiết bị đầu cuối bạn đã chạy rsync in, nhấn Ctrl+Z gửi TSTP. Tiếp tục với lệnh fg hoặc bg trong thiết bị đầu cuối hoặc tín hiệu CONT.

Nó là an toàn để giết một quá trình rsync và chạy lại toàn bộ; nó sẽ tiếp tục nơi nó rời đi. Nó có thể hơi kém hiệu quả, đặc biệt nếu bạn chưa vượt qua --partial (bao gồm trong -P), bởi vì rsync sẽ kiểm tra lại tất cả các tệp và xử lý tệp mà nó bị gián đoạn từ đầu.

Có thể có các kết hợp tùy chọn bất thường sẽ dẫn đến một số tệp không được đồng bộ hóa đúng cách, có thể --inplace với một cái gì đó khác, nhưng tôi nghĩ không có lựa chọn duy nhất sẽ gây ra điều này.

Nếu bạn ngắt kết nối máy tính xách tay của bạn và kết nối lại nó ở một nơi khác, nó có thể nhận được một địa chỉ IP khác. Sau đó, kết nối TCP được sử dụng bởi rsync sẽ bị cắt đứt, do đó bạn phải giết nó và bắt đầu lại. Điều này cũng có thể xảy ra nếu bạn treo máy tính xách tay của bạn và TCP hết thời gian kết nối. Hết thời gian chờ cuối cùng sẽ lọc ra cấp ứng dụng, nhưng có thể mất một lúc. Ctrl+C và chạy rsync một lần nữa.

Ctrl+Z đình chỉ và:

$ fg

để tiếp tục, sử dụng

$ jobs

để xem công việc bị đình chỉ; bg [number] để làm nền cho chúng; fg [number] để tiền cảnh nó.

22
gauteh

Chạy rsync với --partial cờ. Sau đó, nó sẽ giữ chuyển một phần và tiếp tục một phần tệp khi bắt đầu.

8
bahamat

Mọi người ở đây đã đề cập đến việc sử dụng --partial cờ hoạt động, nó cần được đề cập tuy nhiên nó chỉ tiếp tục lại khi --append hoặc là --append-verify cờ được sử dụng khi tiếp tục.

--partial tạo một tệp ẩn của tệp chưa kết thúc quá trình đồng bộ hóa, tệp được giữ khi bạn ngắt đồng bộ hóa. Nó tiếp tục hoàn thành tệp khi bạn sử dụng --append sau khi tiếp tục, nếu không thì không sử dụng --append, tệp ẩn chưa hoàn thành được giữ và không đầy đủ.

Kết luận: Bạn chỉ có thể ngắt rsync --partial bằng cách sử dụng Ctrl + C nếu bạn dùng rsync --append khi tiếp tục

(Nguồn: rsync có thể tiếp tục lại sau khi bị gián đoạn không? lấy ra ngày 5 tháng 4 năm 2016)

5
Mehdi Nellen