我正在使用 Windows 机器上的以下脚本在 Linux 上运行并进行备份。
@ECHO off
:: run remote command
plink.exe username@myserver /home/username/do-backup.sh
该脚本的问题在于,我必须保持会话处于活动状态。由于备份需要 30 分钟左右,所以我想知道是否有任何方法可以运行该脚本,并且之后即使我关闭系统,备份命令仍能继续工作。或者您可以说我执行批处理文件,它会转到服务器,在服务器上执行脚本,然后返回,而备份脚本仍在服务器上继续运行。
答案1
我是
plink.exe username@myserver "echo /home/username/do-backup.sh | at now + 1 min"
这将告诉远程服务器在 1 分钟内启动脚本。
请注意,因为这是通过调度程序运行脚本,所以您可能需要确保脚本正确设置环境,它可能与通过交互式会话运行时的环境不完全相同。
答案2
如果你nohup
在命令行中使用,即使会话结束,脚本仍将继续运行。因此,将命令更改为类似
plink.exe username@myserver nohup /home/username/do-backup.sh
應該做。