我有一个已设置好的 rsync(cwrsync)批处理文件,每天通过 ssh 将几个目录备份到备份服务器。
我将此批处理文件设置为作为计划任务运行,但它似乎没有运行。
如果我在登录时运行批处理文件,一切都会顺利运行,但是我无法让它作为计划任务运行。我是否登录都没有区别。事件日志中也没有列出任何错误,这表明计划任务确实执行了,但批处理文件由于某种原因没有执行。
答案1
Windows 计划任务默认以特殊系统用户身份运行(记不清确切名称了,类似于LocalSystem
?),但该用户通常不具有与系统普通用户相同的环境或权限。如果不了解详细信息,很难判断您的任务到底出了什么问题,因此我仅提出一些想法。
您的批处理脚本可能访问了仅为您定义的映射驱动器号,因此当以特殊的“计划任务”用户身份运行时,脚本会失败。另一种可能性是您的脚本访问了网络共享,而我认为“计划任务”用户通常没有访问这些共享的权限。
最后,您可以尝试将批处理脚本中命令的输出重定向到文本文件。这可能很简单,只需>> C:\myscriptlogfile.txt
在脚本的每一行中添加类似这样的内容即可。检查失败运行的输出可能会为您提供一些有关问题所在线索。
答案2
另一件需要检查的事情是——命令是否用引号引起来?
Server 2008 中存在一个问题,如果命令行括在引号中,计划任务将无法运行。(但我不确定 R2 中是否已修复此问题)
您通常可以通过将命令行转换为旧的 8.3 样式路径(例如 C:\progra~1\ 等)来解决此问题。
查看知识库文章了解详细信息和修补程序。