簡體   English   中英

cygwin rsync所有日志位置

[英]cygwin rsync all log locations

我正在嘗試通過Windows上的cygwin保護兩台計算機之間的rsync文件傳輸。

rsync創建的所有日志文件的位置在哪里? 我目前正在使用

rsync -e ssh -avzP --delete "/cygdrive/C/secure/data/" "/cygdrive/D/data" --log-file=/cygdrive/C/secure/log/c.log

當rsync啟動時,它說“構建文件列表”是在內存中完成的還是在某個地方寫入臨時文件?

您詢問“構建文件列表...”是否發生在內存中,或存儲在某處。 讓我們看一下rsync的源代碼 ,即flist.c

2089         rprintf(FLOG, "building file list\n");
2090         if (show_filelist_p())
2091                 start_filelist_progress("building file list");
2092         else if (inc_recurse && INFO_GTE(FLIST, 1) && !am_server)
2093                 rprintf(FCLIENT, "sending incremental file list\n");
2094 
2095         start_write = stats.total_written;
2096         gettimeofday(&start_tv, NULL);
2097 
2098         if (relative_paths && protocol_version >= 30)
2099                 implied_dirs = 1; /* We send flagged implied dirs */
2100 
2101 #ifdef SUPPORT_HARD_LINKS
2102         if (preserve_hard_links && protocol_version >= 30 && !cur_flist)
2103                 init_hard_links();
2104 #endif
2105 
2106         flist = cur_flist = flist_new(0, "send_file_list");
2107         if (inc_recurse) {
2108                 dir_flist = flist_new(FLIST_TEMP, "send_file_list");
2109                 flags |= FLAG_DIVERT_DIRS;
2110         } else
2111                 dir_flist = cur_flist;

flist_new只是分配一個新的文件列表池,而不執行任何操作。 字符串參數用於通知內存不足錯誤。

然后有幾百行,其目的是發送文件列表。 除了可能的錯誤消息外,那里沒有任何rprintf調用。 該循環中最有趣的函數調用是對send_file_name調用,但這些調用也不會調用rprintf

因此, 是的,它在內存中構建文件 ,並且您必須自己修補源文件才能記錄它。 此外,並非rsync中的所有內容都記錄到日志文件中,而是將某些消息直接打印到屏幕上。 實際上,根據進度設置,使用簡單的Shell重定向可能會更好。 (或使用tee將輸出打印到文件和標准輸出。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM