gpt4 book ai didi

Windows 8.1 任务计划程序在未登录的情况下不会执行 Rsync/SSH

转载 作者:可可西里 更新时间:2023-11-01 10:45:53 25 4
gpt4 key购买 nike

我已经在 Windows 8.1 中创建并计划了一个批处理文件(通过 SSH 隧道执行 rsync 异地备份)并且我可以运行它:

  • 手动
  • 当我右键单击时手动通过任务计划程序 -> 运行
  • 当我登录时自动通过任务调度程序,它被安排在给定的时间运行

...但是当我没有登录时,它只是处于“正在运行”状态,即使我已将其设置如下:

  • user=me(我是管理员组的成员)
  • 无论是否登录都运行
  • 以最高权限运行

我可以在任务管理器中看到 rsync.exe 和 ssh.exe 正在运行,所以它一定卡在 rsync/ssh 调用上。这让我相信问题是,即使我已经明确设置了用户名,但某些东西不是真的在像我一样运行吗?(侧边栏:我也尝试过以 SYSTEM 用户身份运行任务 - 也不走运)

我发出的命令如下所示:

rsync --archive --verbose --human-readable --hard-links --delete --exclude '*.log' --exclude '*log*.*' -e  "%CWRSYNCBIN%\ssh -p 22103 -i C:\Users\test\.ssh\id_rsa" "/cygdrive/c/Users/test/Downloads" admin@1.2.3.4:/path/to/remote 1> %REPORTLOG% 2> %ERRORLOG%

有什么想法吗? (谢谢!)

最佳答案

这似乎是较新 Windows 版本(从 Server 2008 和 Vista 开始?)中计划作业中主目录和非交互环境的问题。我在很少的讨论中发现它,但没有太多信息可以解决它:

我的解决方案是:

  • 将任务设置为在被证明能够完成 rsync 的用户下运行,设置在用户登录或未登录时运行,我还设置为不保存密码,
  • 找到此用户下的 .ssh 文件夹的位置(在他的主目录中),
  • 将 .ssh 复制到更简单的路径以在 HOME 变量中使用它(SET HOME=D:\CWRSYNC\HOME),
  • 使用以下脚本运行 rsync:



@ECHO OFF
SETLOCAL
SET CWRSYNCHOME=D:\CWRSYNC
SET HOME=D:\CWRSYNC\HOME
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%;%PATH%
rsync.exe -rtvz --delete /cygdrive/b/ user@192.168.1.2:/volume1/NetBackup/ >> D://nas-backup-log.txt

关于Windows 8.1 任务计划程序在未登录的情况下不会执行 Rsync/SSH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26273547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com