我已经在Windows 8.1中创建并安排了批处理文件(通过SSH隧道执行rsync异地备份),我可以运行它:
...但是当我没有登录时,它只是在"运行"即使我将其设置如下:
我可以在任务管理器中看到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%
有什么想法吗? (谢谢!)
答案 0 :(得分:0)
在较新的Windows版本(从Server 2008和Vista开始?)的预定作业中,主目录和非交互式环境似乎存在问题。我在很少的讨论中找到它,但没有太多信息可以解决它:
我的解决方案是:
SET HOME=D:\CWRSYNC\HOME
),
@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
答案 1 :(得分:0)
当我在Windows Server 2012 R2上遇到此问题时,我发现在尝试创建known_hosts文件时,SSH.exe遇到了权限错误,尽管该任务以管理员凭据和最高权限运行。
解决方案是使用UserKnownHostsFile
SSH选项指向用户现有的known_hosts文件:
rsync -e "ssh -i sshkey -o UserKnownHostsFile path/to/known_hosts" source dest