我有一個站點需要登錄管理員才能將臨時數據庫推送到活動數據庫。它所做的第一件事是轉儲SQL並推送到目標數據庫。這工作正常,但是當我去rsync包含上傳的材料的文件夾時,出現錯誤。這隻會在腳本從視圖中調用時發生,而不是從命令行或python shell中調用。這裏是功能:如何從Django視圖rsync到本地文件夾
def copy_media(self, origin_folder, target_folder):
command_string = "rsync -a %s %s" % (origin_folder, target_folder)
return_code = subprocess.call(command_string, shell=True)
return return_code
當它的錯誤返回代碼是「12」。我最好的猜測是,由於在腳本執行完成之前有相當長的延遲,視圖不知道如何正確等待它結束。我的另一個猜想是,路徑以某種方式在視圖內被搞砸了。
它可能是由於用戶身份驗證設置文件?你可以嘗試-o選項。您是否嘗試使用rsync上的-v選項來查看是否發出警告? – Priyeshj 2012-01-27 21:22:01
我會嘗試...從視圖調用rsync的最佳方式任何想法? – Sebastian 2012-01-27 22:23:49
除非您確定'origin_folder'和'target_folder',否則您不會在生產中使用此代碼,否則您很容易發生shell注入。 – 2015-07-08 21:54:30