2009-12-18 72 views
2

我已经编写了一个python脚本,它使用子进程调用robocopy同步来自远程主机的日志文件。Robocopy错误代码6''句柄无效'

像这样:

program = 'Robocopy' 
options = ['/S'] 
args.append(program) 
args.append(options) 
args.append('\\\\%s\%s' % (hostname, source_path)) 
args.append(local_path) 
proc = subprocess.Popen(args=args, shell=True, stdout=cmd_log, stderr=error_log) 

其中SOURCE_PATH是远程主机和LOCAL_PATH上的路径是本地主机(二者UNC路径)上的路径。代码通常在守护进程中运行,并且每隔几个小时就会启动。也可以直接在命令提示符下运行此代码。当它在一个守护进程运行看来,有时我从的Robocopy得到一个错误:

错误代码6:“句柄无效”

但是,当我在命令提示符下运行这个我没有得到任何错误。从我在网络搜索中发现的情况来看,这可能与已传输文件上已打开的文件句柄有关。有没有人有关于这个错误的更多信息和避免它的方法?

+0

我发现在字符串中使用反斜杠时始终使用原始字符串是一种很好的做法。就你而言,你正在逃避一些反斜杠而不是其他的。它不应该与您的问题有关,但养成这种习惯意味着您在将来不花时间试图弄清楚为什么“\\\\ server \ nameofshare”不起作用... – 2009-12-18 15:45:53

回答

1

"robocopy handle is invalid"的Google搜索建议您可以通过使用“备份模式”的/ b选项找到成功。

即使这不起作用,我会建议添加代码来输出文件名,因为它们正在被复制(或记录下来),并且一旦你确定了特定的失败文件,你也可能会意识到问题是。

+0

谢谢!我会试一试,让你知道它是如何结果。 – noahd 2009-12-28 15:29:12

相关问题