是否可以查看 dropboxd 現在正在同步的內容?

是否可以查看 dropboxd 現在正在同步的內容?

Linux 上 dropboxd 的 dropbox.py 腳本將給出當前狀態:

$ dropbox.py status 
Syncing (2,656 files remaining)
Uploading 2,656 files...  

或特定文件或目前資料夾的狀態:

$ dropbox.py filestatus 
Camera Uploads:     up to date 
Customer Shares:    syncing

但是有沒有辦法查看現在實際傳輸的檔案是什麼?

我問的原因是 Dropbox 同步卡住了好幾天,但沒有進展。我懷疑它卡在一些奇怪的大或損壞的文件上,如果我能識別它,我可以刪除它/忽略它。

筆記

$ ls -l /proc/7857/fd

其中 7857 是 dropbox 的 pid,同步路徑中不顯示任何檔案。

請注意,要求停止 dropboxd 並使用偵錯器重新執行不會顯示正在傳輸的內容現在。停止和啟動守護程序會導致重新索引並重新開始同步。這可能會導致傳輸一組不同的檔案。

有什麼建議麼?

答案1

如果你使用的是linux,這很容易。在同步過程中您可以執行下列操作:

find $HOME/dropbox_sync_dir -type f -exec dropbox.py file status -a '{}' \; | grep 'syncing'

解釋細節:

  • find <path> -type f -exec dropbox.py ... '{}' \;

dropbox.py 在每個檔案或目前目錄下 運行。

請注意,大括號括在單引號中,以防止它們被解釋為 shell 腳本標點符號。分號同樣透過使用反斜線進行保護,儘管在這種情況下也可以使用單引號。

更多關於人發現頁面

  • dropbox.py file status -a來自Dropbox Linux 用戶端手冊:

    dropbox file status  [-l] [-a] [FILE]…
    
    Prints the current status of each FILE.
    
      Options:
    
       -l or --list prints out information in a format similar to the native Linux command ls.
       -a or --all do not ignore entries starting with "."
    

    別名包括 stat。

  • | grep 'syncing'

搜尋“同步”字串。

注意:.py 結尾不應該是強制性的,應該有一個別名,所以只寫就夠dropbox了。

第一次編輯- 由於 Paul 對 dropboxd(守護程序)與 dropbox.py 的評論而重新編輯。

這仍然是找出正在傳輸的內容的最可能的方法。

當我完成待處理的任務時,我會嘗試自己去調試它。

應該透過(python 調試器)dropbox.py進行調試,以了解更多信息pdb蟒蛇調試工具

終於在保羅的評論之後我明白了問題的核心在哪裡。他想看到目前存取的文件甚至更好被轉移的人透過 Dropbox 同步用戶端。

  • 您可以找到目前使用的 Dropbox 用戶端所使用的所有檔案:

    ls -thal /proc/`pgrep dropbox`/fd | egrep -v 'socket:|pipe:|anon_inode|/dev/'
    
  • 如果您看不到任何內容,則表示客戶端可能出現問題。我建議表演斯特雷斯

    To monitor your dropboxd script with output save into output.txt file:
    `strace -o output.txt dropboxd`
    
    To monitor only system calls you could enter:
    `strace -e open dropboxd`
    
  • 如果您想更深入,您可以附加一個偵錯工具例如 gdb您的strace會議。

    如果您不熟悉這個過程,您可以檢查一下,例如,這個很好郵政關於 UNIXstracegdb.

只是一個快速幫助:

當您使用以下命令開始追蹤時:(strace dropboxd運行 pid 將為 501)然後您可以透過以下方式附加到它:

$ gdb --quiet
(gdb) attach 501
  • 如果其他方法都失敗,您可以使用其他方法來同步您的 Dropbox:

例如,使用不同的 cli 用戶端,例如dbxcli

第二次編輯和第四次編輯- 在 dropbox 支援自己的私鑰之前不會工作。

來自 dropbox 支援的答案:

Dropbox 不支援建立您自己的私鑰。

我突然想到,即使透過網路監控工具(如 )也應該可以檢查傳輸的內容wireshark

由於 Dropbox 用戶端使用 SSL/TSL(或 AES)Dropbox 安全性架構你應該有鑰匙來檢查。

有關如何使用的詳細信息,wireshare您可以檢查https://wiki.wireshark.org/SSL或根據您的情況調整此範例分析 SSL/TLS 客戶端 Hello 流量。如果您有 Dropbox 證書,您可以將其匯入wireshark以查看發生了什麼。 (有關 Dropbox 安全性詳細信息,您可以檢查Dropbox 安全白皮書

第三次編輯和第四次編輯- 有關 SSL/TSL 解密的詳細資訊。 (在 Dropbox 支援自己的私鑰之前不會運作。)

來自 dropbox 支援的答案:

Dropbox 不支援建立您自己的私鑰。

在第二個編輯部分中,我建議您可以透過wireshark查看SSL流量。由於保羅認為我建議你實際上應該破解DH key exchange,這在目前的知識下是不可能的,所以我想糾正它。

我想建議的是,如果你正在使用Dropbox 業務 RSA和 RSA 驗證,您可以嘗試使用dropboxd with RSA key(守護程式 dropboxd 是閉源的,我無法檢查原始程式碼是否有該功能,可能最好的解決方案是直接詢問 dropbox.com)。

如果可能的話,然後才將其匯入RSA key線鯊查看目前正在傳輸的內容。

相關內容