2

I'm using following script from my windows machine to run on linux and do backup.

@ECHO off
:: run remote command
plink.exe username@myserver /home/username/do-backup.sh

Problem with this script is that, i have to keep my session live. as backup takes 30 minutes or so , so I want to know if there is any way I run this script and after that backup command keeps working even if i turn off my system. or you can say that i execute my batch file it goes to server, execute script on server and then comes back while backup script keeps running on server.

Kashif
  • 473
  • 9
  • 20
  • 1
    Have you already considered using `putty` as terminal and `screen` on the linux machine? – ott-- Apr 25 '12 at 11:28

2 Answers2

3

If you use nohup in your command line, the script will continue running even though the session ends. So, changing your command to something like

plink.exe username@myserver nohup /home/username/do-backup.sh

Should do it.

Matt Sieker
  • 358
  • 4
  • 11
  • I prefer this one as it lets me do the command as fast as it can. good for fast shutdowns like `echo y | plink.exe -i key leeroy@server1 "nohup /home/leeroy/ups-shutdown.sh > /dev/null"` This is handy for when your main UPS is being serviced/broken and you are using a small one instead and need to save precious seconds during an outage. The echo y is so plink will blindly accept the ssh key if required. – BeowulfNode42 Nov 19 '15 at 05:32
2

I'm a fan of,

plink.exe username@myserver "echo /home/username/do-backup.sh | at now + 1 min"

which will tell the remote server to start the script in 1 minutes time.

Note that because this is running the script via the scheduler, you may need to ensure the script sets up the environment correctly, it might not be exactly the same environment as when run through an interactive session.

EightBitTony
  • 9,211
  • 1
  • 32
  • 46