Có một số giải pháp.
Bối cảnh & từ chối quá trình
- Mở thiết bị đầu cuối ssh đến máy chủ từ xa.
- Bắt đầu
scp
chuyển như bình thường.
- Bối cảnh quá trình scp ( Ctrl+ Z, sau đó là lệnh
bg
.)
- Bỏ quy trình nền (
disown
).
- Kết thúc phiên (
exit
) và quá trình sẽ tiếp tục chạy trên máy từ xa.
Một nhược điểm của phương pháp này là các bộ mô tả tệp cho thiết bị xuất chuẩn và thiết bị xuất chuẩn vẫn sẽ chứa các tham chiếu đến tty phiên ssh của bạn. Thiết bị đầu cuối có thể bị treo khi bạn cố gắng thoát vì điều này. Bạn có thể giải quyết vấn đề này bằng cách gõ ~.
để buộc khách hàng ssh của bạn (chuỗi thoát đó phải theo một dòng mới ... xem thêm ~?
). Nếu quá trình bạn đang từ bỏ ghi vào thiết bị xuất chuẩn hoặc thiết bị xuất chuẩn, quá trình có thể thoát sớm nếu bộ đệm tty quá đầy.
Tạo một phiên màn hình và tách nó ra
GNU Screen có thể được sử dụng để tạo một phiên thiết bị đầu cuối từ xa, có thể tách rời và tiếp tục chạy trên máy chủ sau khi bạn đăng xuất khỏi phiên. Sau đó, bạn có thể đăng nhập lại vào máy chủ vào một ngày sau đó và gắn lại vào phiên.
- Đăng nhập vào máy chủ từ xa qua ssh.
- Bắt đầu một phiên màn hình ,
screen -D -R <session_name>
.
- Bắt đầu
scp
chuyển như bình thường.
- Tách phiên màn hình bằng Ctrl+ Arồi d.
- Chấm dứt phiên ssh (
exit
)
Để gắn lại vào phiên:
- Đăng nhập vào máy chủ từ xa qua ssh.
- Reattach đến phiên màn hình,
screen -D -R <session_name>
Chạy lệnh mà không có Hangups
Xem câu trả lời bằng cách sử dụng nohup
.
Sử dụng Trình lập lịch tác vụ
Đây là giải pháp tốt nhất nếu đây là một loại nhiệm vụ định kỳ mà bạn muốn tự động hóa.
Sử dụng crontab
, at
hoặc batch
để lên lịch chuyển tiền.
-D -R
cờ bắt đầuscreen
. Tôi đọc trang người đàn ông và nó không giúp tôi hiểu:-D -R Attach here and now. ...