
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
會議。如果您不熟悉這個過程,您可以檢查一下,例如,這個很好郵政關於 UNIX
strace
和gdb
.
只是一個快速幫助:
當您使用以下命令開始追蹤時:(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
到線鯊查看目前正在傳輸的內容。