2009-12-18 71 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

相關問題