Scarica il file dal server Linux una volta creato


0

Di recente ho iniziato a lavorare con il server Linux, sono molto nuovo. Il mio programma CUDA / C ++ risolve l'equazione differenziale 2D e annota l'output ogni, diciamo, 1000 passi temporali. Succede all'incirca ogni minuto.

È possibile scaricare automaticamente i file sul mio PC dopo che sono stati generati sul server Linux o salvarli direttamente sul mio PC?

Ciò accelererebbe in modo significativo il mio lavoro poiché ora devo aspettare che il mio programma finisca tutti i calcoli e poi lo scarichi manualmente. Ho anche di solito uso 6 GPU allo stesso tempo, producono output in diverse cartelle specificate sul server Linux (per esempio, le cartelle 0, 1, 2, 3, 4, 5).


"È possibile scaricare automaticamente i file sul mio PC dopo che sono stati generati sul server Linux" - Sì; Puoi scrivere codice che lo farà.
Ramhound,

Risposte:


1

Sì, è possibile utilizzare inotify-wait un comando che fa parte del pacchetto inotify-tools . Crea un file, chiamato ad esempio my_monitor , con contenuto

#!/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 controlla una directory o un file (e, se si aggiunge il flag -r , monitorerà ricorsivamente l'intero albero di directory) per le modifiche. Ho selezionato alcune modifiche tipiche da tenere d'occhio e puoi trovare un elenco esaustivo qui ; inotify-wait termina non appena si verifica un evento nell'elenco precedente e il comando precedente esegue quindi alcuni script bash (che è necessario scrivere) che copieranno i file necessari sull'altro computer. Al termine del trasferimento del file, il ciclo ricomincia.

Puoi iniziare lo script sopra con

nohup /path/to/my_monitor

il che significa che, anche se ti disconnetti da questo pc, lo script non smetterà di funzionare: sostanzialmente, funzionerà per sempre ( cioè fino al riavvio).

È tutto.


Potete fornire un esempio? Ad esempio, sul server Linux il mio file viene creato nella directory share-home/genkin/0C:\data\0
:,

1

È possibile eseguire un semplice server sulla macchina Linux che serve i file generati, ad esempio cdnella directory desiderata ed eseguire:

python -m SimpleHTTPServer

Quindi sul PC di casa è possibile utilizzare wgetper scaricare periodicamente le nuove cose (come ottenuto con -N):

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

Se si esegue Windows a casa, è possibile ottenere Wget per Windows e scrivere quanto sopra come BATscript o utilizzare un downloader diverso che esegua quel tipo di mirroring in modo nativo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.