เป็นไปได้ไหมที่จะเห็นว่า dropboxd กำลังซิงค์อยู่ในขณะนี้?


3

สคริปต์ dropbox.py สำหรับ dropboxd บน linux จะให้สถานะปัจจุบัน:

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

หรือสถานะของไฟล์เฉพาะหรือโฟลเดอร์ปัจจุบัน:

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

แต่มีวิธีที่จะดูว่าไฟล์ใดที่ถูกถ่ายโอนจริงตอนนี้?

เหตุผลที่ฉันถามคือดรอปบ็อกซ์ติดขัดมาหลายวันแล้ว แต่ยังไม่คืบหน้า ฉันสงสัยว่ามันติดอยู่ในไฟล์ที่มีขนาดใหญ่มากหรือมีความเสียหายและหากฉันสามารถระบุได้ฉันสามารถลบ / เพิกเฉยได้

บันทึก

$ ls -l /proc/7857/fd

โดยที่ 7857 เป็น pid of dropbox จะไม่มีไฟล์ในพา ธ ที่ซิงค์ปรากฏขึ้น

โปรดทราบว่าการกำหนดให้การหยุดทำงานของ dropboxd และ re-การดำเนินการกับการดีบักเกอร์จะไม่เปิดเผยสิ่งที่จะถูกโอนย้ายในขณะนี้ การหยุดและเริ่ม daemon ส่งผลให้มีการทำดัชนีใหม่และเริ่มการซิงโครไนซ์อีกครั้ง อาจเป็นสาเหตุให้ไฟล์ชุดอื่นเป็นไฟล์ที่ถูกถ่ายโอน

ข้อเสนอแนะใด ๆ


คุณลองใช้เคล็ดลับที่แนะนำด้วย SSL wireshark หรือไม่?
tukan

@tukan ไม่ฉันไม่ได้ทำ ในกรณีที่ดีที่สุดจะต้องมีการเริ่มต้นเซสชัน SSL เพื่อจับคีย์ที่แบ่งใช้ล่วงหน้า อย่างไรก็ตามแอพที่ทันสมัยใช้การสร้างคีย์ Diffie Helman โดยที่คีย์ที่แบ่งไว้ล่วงหน้านั้นไม่เคยอยู่ในสาย - สิ่งนี้ต้องการแอปในการบันทึกกุญแจที่ใช้ ฉันสงสัยอย่างมากว่าดรอปบ็อกซ์ 1) ไม่ได้ใช้ DH และ 2) มีโหมดที่บันทึกคีย์ (ดูที่security.stackexchange.com/questions/35639/… )
พอล

เราไม่เข้าใจซึ่งกันและกัน ฉันไม่แนะนำให้คุณควรถอดรหัส / แฮ็คกุญแจแลกเปลี่ยน DH สิ่งที่ฉันได้แนะนำฉันไม่ทราบว่าคุณใช้แผนดรอปบ็อกซ์ประเภทใดคือการใช้คีย์ RSA ( dropbox.com/business/app-integrations/RSA ) จากนั้นใช้ wireshark เพื่อนำเข้าคีย์นั้น ( support.citrix.com/article/CTX116557 ) เพื่อถอดรหัสการรับส่งข้อมูลจริงด้วยรหัสของคุณเอง
tukan

@tukan โปรดอ่าน "Point to note" แรกในลิงก์ที่สองที่คุณให้ไว้ โปรดทราบว่าลิงก์ RSA เป็นกลไกการตรวจสอบสิทธิ์ไม่มีส่วนเกี่ยวข้องกับ RSA ที่ใช้ในการเข้ารหัส
พอล

ฉันได้ติดต่อdropbox.comฝ่ายสนับสนุนและพวกเขากำลังตรวจสอบมันและต้องติดต่อฝ่ายสมัครเพื่อรับรายละเอียดเพิ่มเติม ให้รอคำตอบ
tukan

คำตอบ:


2

หากคุณอยู่บน 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 กับทุกไฟล์หรือต่ำกว่าไดเรกทอรีปัจจุบัน

ขอให้สังเกตว่าเครื่องหมายวงเล็บอยู่ในเครื่องหมายอัญประกาศเดี่ยวเพื่อป้องกันการตีความเป็นเครื่องหมายวรรคตอนของเชลล์สคริปต์ เครื่องหมายอัฒภาคได้รับการป้องกันในทำนองเดียวกันโดยใช้เครื่องหมายแบ็กสแลช แต่สามารถใช้เครื่องหมายคำพูดเดี่ยวในกรณีนั้นได้

เพิ่มเติมเกี่ยวกับมนุษย์พบหน้า

  • 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 "."
    

    ชื่อแทนรวมถึงสถิติ

  • | grep 'syncing'

ค้นหาสตริง 'ซิงค์'

หมายเหตุ: ปลาย. py ไม่ควรเป็นข้อบังคับควรมีชื่อแทนดังนั้นการเขียนdropboxควรจะเพียงพอ

แก้ไขครั้งแรก - แก้ไขอีกครั้งเนื่องจากความคิดเห็นของ Paul เกี่ยวกับ dropboxd (daemon) และ dropbox.py

นี่เป็นวิธีที่น่าจะเป็นไปได้มากที่สุดในการค้นหาสิ่งที่จะถ่ายโอน

ฉันจะพยายามแก้ไขข้อบกพร่องด้วยตัวเองเมื่อทำภารกิจที่ค้างอยู่เสร็จ

dropbox.pyควรจะผ่านบั๊กpdb(ดีบักหลาม) สำหรับข้อมูลเพิ่มเติมได้ที่หลามดีบัก

ในที่สุดหลังจากความคิดเห็นของเปาโลฉันเข้าใจว่าประเด็นหลักของปัญหาอยู่ที่ไหน เขาต้องการดูไฟล์ที่เข้าถึงในปัจจุบันหรือดีกว่าไฟล์ที่ถูกถ่ายโอนโดยไคลเอนต์ Dropbox sync

  • คุณสามารถค้นหาไฟล์ทั้งหมดที่ใช้โดยไคลเอนต์ dropbox ที่ใช้ในปัจจุบัน:

    ls -thal /proc/`pgrep dropbox`/fd | egrep -v 'socket:|pipe:|anon_inode|/dev/'
    
  • หากคุณไม่สามารถมองเห็นสิ่งใดซึ่งหมายความว่ามีบางอย่างผิดปกติกับลูกค้า ฉันจะแนะนำการปฏิบัติstrace

    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

    ถ้าคุณไม่คุ้นเคยกับกระบวนการนี้คุณสามารถตรวจสอบตัวอย่างเช่นนี้ดีโพสต์เกี่ยวกับยูนิกซ์และ stracegdb

เพียงแค่ความช่วยเหลืออย่างรวดเร็ว:

เมื่อคุณเริ่มการติดตามของคุณด้วย: strace dropboxd(การเรียกใช้ pid จะเป็น 501) จากนั้นคุณแนบมันด้วยวิธีต่อไปนี้:

$ gdb --quiet
(gdb) attach 501
  • หากทุกอย่างล้มเหลวคุณสามารถใช้วิธีอื่นในการซิงค์ดรอปบ็อกซ์ของคุณ:

ตัวอย่างเช่นใช้ไคลเอ็นต์ CLI แตกต่างกันเช่นdbxcli

การแก้ไขครั้งที่สอง & การแก้ไขครั้งถัดไป - จะไม่ทำงานจนกระทั่งดรอปบ็อกซ์รองรับคีย์ส่วนตัวของตัวเอง

คำตอบจากการสนับสนุนดรอปบ็อกซ์:

Dropbox ไม่รองรับการสร้างคีย์ส่วนตัวของคุณเอง

wiresharkมันเกิดขึ้นกับผมว่ามันควรจะเป็นไปได้ที่จะตรวจสอบสิ่งที่จะถูกโอนแม้กระทั่งผ่านทางเครื่องมือการตรวจสอบเครือข่ายเช่น

เนื่องจากไคลเอนต์ดรอปบ็อกซ์ใช้ SSL / TSL (หรือ AES) สถาปัตยกรรมความปลอดภัยของดรอปบ็อกซ์และคุณควรมีคีย์เพื่อตรวจสอบ

สำหรับรายละเอียดวิธีการใช้งานwireshareที่คุณสามารถตรวจสอบhttps://wiki.wireshark.org/SSLหรือปรับตัวอย่างนี้กับกรณีของคุณวิเคราะห์ SSL / TLS ไคลเอ็นต์สวัสดีจราจร ในคุณมีใบรับรองดรอปบ็อกซ์คุณสามารถนำเข้ามาที่ wireshark เพื่อดูว่าเกิดอะไรขึ้น (สำหรับรายละเอียดความปลอดภัยของ dropbox คุณสามารถตรวจสอบเอกสารความปลอดภัยของ Dropboxได้

การแก้ไขที่สาม & การแก้ไขทันที - รายละเอียดเกี่ยวกับการถอดรหัส SSL / TSL (จะไม่ทำงานจนกระทั่งดรอปบ็อกซ์รองรับคีย์ส่วนตัวของตัวเอง)

คำตอบจากการสนับสนุนดรอปบ็อกซ์:

Dropbox ไม่รองรับการสร้างคีย์ส่วนตัวของคุณเอง

ในส่วนแก้ไขที่สองฉันแนะนำว่าคุณสามารถดูปริมาณการใช้งาน SSL ผ่าน wireshark เนื่องจาก Paul คิดว่าฉันแนะนำว่าคุณควรแฮ็คข้อมูลจริงที่DH key exchangeไม่สามารถทำได้ฉันจึงต้องการแก้ไข

สิ่งที่ฉันพยายามแนะนำคือถ้าคุณใช้การรับรองความถูกต้องของDropbox ธุรกิจ RSAและ RSA คุณสามารถลองใช้dropboxd with RSA key(daemon dropboxd ปิดแหล่งที่มาฉันไม่สามารถตรวจสอบซอร์สโค้ดได้หากการทำงานอยู่ที่นั่นและน่าจะดีที่สุด วิธีแก้ปัญหาคือขอให้ dropbox.com โดยตรง)

หากเป็นไปได้ให้นำเข้าRSA keyสู่wiresharkเพื่อดูว่ากำลังถ่ายโอนอะไรอยู่


วิธีการนี้จะแสดงรายการไฟล์ทั้งหมดที่อยู่ในคิวสำหรับการพิมพ์ไม่ใช่ไฟล์จริงที่ซิงค์อยู่ในปัจจุบัน
พอล

@ พอล: ถ้าคุณทำในdropbox filestatus /path_to/fileสิ่งที่มันกลับมา?
tukan

เลือกไฟล์ใดก็ได้จาก dir ที่ซิงค์ของคุณ
tukan

หากคุณมี 1000 ไฟล์เข้าคิวเพื่อซิงค์แล้ว filestatus syncingสำหรับแต่ละของพวกเขาจะ
พอล

@ พอลอาในที่สุดแกนหลักของความคิดเห็นของคุณ ขออภัยที่มีความหนาแน่น ฉันเข้าใจคำถามของคุณแตกต่างกัน ฉันจะแก้ไขโพสต์ของฉันเพื่อคำตอบที่ดีกว่า
tukan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.