Ci sono alcune situazioni in cui si desidera eseguire/avviare alcuni script su un computer/server remoto (che termina automaticamente) e disconnettersi dal server.
esempio: Uno script in esecuzione su una scatola che, quando eseguito
- prende un modello e lo copia a un server remoto
- crea uno script per l'esecuzione di una simulazione con il modello e spingerlo al server
- avvia lo script sul server e disconnette
- Lo scopo dello script avviato è quello di eseguire la simulazione nel server e una volta completato (ci vorranno giorni per completare) copiare i risultati sul client.
vorrei utilizzare il seguente comando:
ssh remoteserver 'nohup /path/to/script `</dev/null` >nohup.out 2>&1 &'
@CKeven, puoi mettere tutti quei comandi su una sceneggiatura, spingerlo al server remoto e di avviare nel modo seguente:
echo '#!/bin/bash
rm -rf statuslist
mkdir statuslist
chmod u+x ~/monitor/concat.sh
chmod u+x ~/monitor/script.sh
nohup ./monitor/concat.sh &
' > script.sh
chmod u+x script.sh
rsync -azvp script.sh remotehost:/tmp
ssh remotehost '/tmp/script.sh `</dev/null` >nohup.out 2>&1 &'
Spero che questo funziona ;-)
Edit: È inoltre possibile utilizzare ssh user @ host 'ghiaione n -S NomeSessione -d -m "/ path/to/file eseguibile"'
che crea una sessione di screen distaccato e corre comando di destinazione all'interno di esso
Cosa succede se il comando che si sta eseguendo richiede l'input da un file (come un'importazione db di grandi dimensioni, ad esempio mysql
cayblood