Tải xuống tệp từ máy chủ linux sau khi được tạo


0

Gần đây tôi bắt đầu làm việc với máy chủ Linux, tôi rất mới. Chương trình CUDA / C ++ của tôi giải quyết phương trình vi phân 2D và ghi lại đầu ra mỗi 1000 bước thời gian. Nó xảy ra khoảng mỗi phút.

Có thể tự động tải tệp xuống PC của tôi sau khi chúng được tạo trên máy chủ Linux hoặc lưu chúng trực tiếp vào PC của tôi không?

Điều này sẽ tăng tốc đáng kể công việc của tôi vì bây giờ tôi phải đợi chương trình của mình hoàn thành tất cả các tính toán và sau đó tải xuống bằng tay. Tôi cũng thường sử dụng 6 GPU cùng lúc, họ sản xuất ra trong các thư mục cụ thể khác nhau trên máy chủ LINUX (nói, thư mục 0, 1, 2, 3, 4, 5).


"Có thể tự động tải tệp xuống PC của tôi sau khi chúng được tạo trên máy chủ Linux không" - Có; Bạn có thể viết mã sẽ làm điều này.
Ramhound

Câu trả lời:


1

Có, bạn có thể sử dụng inotify-đợi một lệnh là một phần của gói công cụ inotify . Tạo một tệp, được gọi là my_monitor , với nội dung

#!/bin/bash
while true # will loop forever!
do 
   inotify-wait -r -e modify,attrib,close_write,move,create,delete /path/to/dir/or/file/to/monitor && /path/to/script
done

inotify-Wait theo dõi một thư mục hoặc một tệp (và, nếu bạn thêm cờ -r , nó sẽ theo dõi đệ quy toàn bộ cây thư mục) để thay đổi. Tôi đã chọn một số thay đổi điển hình để theo dõi và bạn có thể tìm thấy một danh sách đầy đủ ở đây ; inotify-Wait chấm dứt ngay khi một sự kiện trong danh sách trên xảy ra và lệnh ở trên sau đó thực thi một số tập lệnh bash (mà bạn phải viết) sẽ sao chép các tệp bạn cần vào máy khác. Ngay sau khi chuyển tập tin hoàn tất, chu kỳ bắt đầu lại.

Bạn có thể bắt đầu đoạn script trên với

nohup /path/to/my_monitor

điều đó có nghĩa là, ngay cả khi bạn đăng xuất khỏi máy tính này, tập lệnh sẽ không ngừng hoạt động: về cơ bản, nó sẽ chạy mãi mãi ( tức là cho đến khi khởi động lại).

Đó là tất cả.


bạn có thể cung cấp một ví dụ? Giả sử, trên máy chủ Linux, tệp của tôi được tạo trong thư mục: share-home/genkin/0và tôi muốn tải nó xuống PC của mình vào thư mụcC:\data\0
Mikhail Genkin

1

Bạn có thể chạy một máy chủ đơn giản trên máy Linux phục vụ các tệp được tạo, ví dụ: cdđến thư mục mong muốn và chạy:

python -m SimpleHTTPServer

Sau đó, trên PC tại nhà, bạn có thể sử dụng wgetđể định kỳ tải xuống nội dung mới (như đã đạt được -N):

while true; do
    wget -rN http://server/
    sleep 60
done

Nếu bạn đang chạy Windows tại nhà, bạn có thể lấy Wget cho Windows và viết phần trên dưới dạng BATtập lệnh hoặc sử dụng một trình tải xuống khác thực hiện kiểu phản chiếu đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.