Dropbox ในโฟลเดอร์ที่ติดตั้ง NFS


4

ฉันใช้ Dropbox ในกล่อง Ubuntu ของฉันโดยมีโฟลเดอร์ Dropbox อยู่ในไดรฟ์ที่ติดตั้งผ่านรายการใน / etc / fstab ฉันกำลังเผชิญหน้ากับความรำคาญเล็กน้อยหลังจากรีบูตแต่ละครั้ง เมื่อฉันเข้าสู่ระบบฉันจะได้รับข้อความว่าโฟลเดอร์ดรอปบ็อกซ์หายไป อย่างไรก็ตามในขณะที่ฉันเข้าสู่ระบบจริงโฟลเดอร์นั้นมีอยู่แล้วเนื่องจากการเมานต์เสร็จสมบูรณ์ในไม่ช้าในขั้นตอนการบู๊ต

เมื่อฉันออกจากพรอมต์จากนั้นเปิดใช้งานดรอปบ็อกซ์ใหม่อีกครั้งทุกอย่างไม่มีปัญหา

ดังนั้นคำถามของฉันคือ - ฉันจะทำให้ตัวปล่อย dropbox รอการเมานต์ / etc / fstab ทั้งหมดที่รอดำเนินการได้อย่างไร

การเมานต์ NFS อยู่บนเซิร์ฟเวอร์เดียวกับที่ใช้กับเซิร์ฟเวอร์เสมือนของ hdd (VMWare) ของ Ubuntu ดังนั้นปัญหาของการบูทเครื่องจึงไม่สามารถใช้งานร่วมกันได้


คุณได้พิจารณาการเริ่มบริการดรอปบ็อกซ์หลังจากบริการ nfs-mount แล้วหรือยัง? คุณจะเริ่มดรอปบ็อกซ์ได้อย่างไร คำแนะนำ
ЯрославРахматуллин

นั่นจะดีมาก - ฉันใช้ Dropbox เพียงอย่างเดียวฉันยังไม่ได้ดูว่ามันจะเล็ดลอดในระดับใด พลังของการเริ่มต้นฉันคิดว่า อะไรจะเป็นวิธีที่ง่ายที่สุดในการค้นหา? ฉันมี "ปัญหา" ที่คล้ายกันกับ crashplan อย่างไรก็ตามที่หนึ่งสแกนอีกครั้งด้วยตัวเองใน 10 นาทีและค้นหาข้อมูลที่นั่น
petr

คุณ "แค่ใช้ดรอปบ็อกซ์" ได้อย่างไร แพ็คเกจ Ubuntu หรือไบนารีจาก dropbox.com หากคุณใช้แพคเกจ ubuntu ฉันคิดว่าพวกเขา (ubuntu devs) เปิดตัวกระบวนการพื้นหลังดรอปบ็อกซ์เป็นบริการอื่น ๆ คำแนะนำสำหรับการให้ความสำคัญกับ daemons (บริการ) อยู่ในลิงค์ด้านบน หากคุณดูคำแนะนำจะเห็นได้ชัดว่าจะทราบได้อย่างไรว่าบริการดรอปบ็อกซ์เปิดตัวก่อนหรือหลังบริการ nfs-mount ฉันไม่ค่อยมีประสบการณ์กับ Ubuntu มิฉะนั้นฉันจะให้คำตอบตรงๆ ... และถ้าคุณใช้ไบนารี่ที่ Dropbox.com จัดหามาฉันก็ไม่มีความคิด
ЯрославРахматуллин

โดย "เพียงแค่ใช้ Dropbox" หมายความว่าฉันได้ติดตั้งมันจากไบนารีที่จัดทำโดย Dropbox ซึ่งทำการตั้งค่าทั้งหมด (และแก้ไขตัวจัดการไฟล์ไม่ให้ทำสิ่งอื่น) ฉันจะดูที่ runlevels ของ nfs-mount และ Dropbox และตรวจสอบให้แน่ใจว่า Dropbox อยู่ในระดับสูงกว่า นอกจากนี้ถ้าฐานข้อมูลอยู่ในระดับการรันที่สูงขึ้น แต่ nfs-mount ใช้เวลาในการเมานต์ไดเร็กทอรีหรือไม่ ฉันจะต้องแนะนำการหน่วงเวลาโดยพลการในสคริปต์เรียกใช้ฐานข้อมูลหรือไม่
petr

บางทีแม้ว่าการเมาต์เหล่านั้นไม่ควรใช้เวลานานกว่าการปิงระหว่างเซิร์ฟเวอร์และไคลเอนต์
ЯрославРахматуллин

คำตอบ:


2

สมมติว่าคุณใช้https://www.dropbox.com/download?plat=lnx.x86และไม่ใช่แพ็คเกจ .deb วิธีที่เป็นไปได้ในการทำให้ตัวปล่อยรอบ็อกซ์รอลจะมาพร้อมกับเชลล์สคริปต์ ที่จริงแล้วฉันคิดว่าคุณใช้แพ็คเกจ. deb เนื่องจากคุณบอกว่า "แพตช์ตัวจัดการไฟล์" อย่างไรก็ตามสคริปต์ด้านล่างควรทำงานโดยไม่คำนึงถึงวิธีการติดตั้ง

เท่าที่ฉันเห็นmountall(8)มีการเรียกใช้เป็น "งานพุ่งพรวด" ใน Ubuntu (ไม่ว่าจะเป็นอะไร) มันรันจนกระทั่งระบบไฟล์ทั้งหมด (รวมถึง NFS) ถูกเมาท์ เราสามารถตรวจสอบว่ามันกำลังทำงานหรือเริ่มต้น เมื่อได้รับสัญญาณUSR1โดยกระบวนการนั้นระบบ NFS ทั้งหมดจะถูกเมาท์ หากการติดตั้งสำเร็จแล้วmountallจะตาย สคริปต์นี้จะต้องทำงานเป็นผู้ใช้ขั้นสูง

/ usr / local / bin / ดรอปบ็อกรอ-mount

#!/bin/sh
runas={$1:-root}
mpid=`pidof mountall`
if [ -z "$mpid" ] ; then
        mountall --daemon --no-events -q
        mpid=`pidof mountall`
else
        echo mountall is running, going to notify it to mount nfs shares
fi

kill -USR1 $mpid # see /etc/init/mountall-net.conf and mountall(8)
mpid=`pidof mountall`

while [ -n "$mpid" ]; do
        echo waiting for all mounts
        sleep 30
        kill -USR1 $mpid # see /etc/init/mountall-net.conf and mountall(8)
        sleep 1
        mpid=`pidof mountall`
done

echo should be safe to run dropbox now
exec su $runas -c /home/$runas/.dropbox-dist/dropboxd

หน้าคนแนะนำไม่พึ่งพาการทำงานของmountallแต่ให้ลักษณะของ"การแก้ปัญหาชั่วคราว"ฉันคิดว่าคุณสามารถใช้สิ่งนี้ในบางครั้ง

และสำหรับการรวมเข้ากับงานเริ่มต้นของ Ubuntu:

/etc/init/dropbox.conf

# based on ssh.conf

description     "Dropbox daemon"
env RUNAS=root # use /etc/init/dropbox.override

#start on stopped mountall-net RESULT=ok
start on remote-filesystems
stop on runlevel [!2345]

respawn
respawn limit 10 5
umask 022

# 'sshd -D' leaks stderr and confuses things in conjunction with 'console log'
console none

pre-start script
    test -x /usr/local/bin/dropbox-wait-mount || { stop; exit 0; }
end script

# if you used to set SSHD_OPTS in /etc/default/ssh, you can change the
# 'exec' line here instead
exec /usr/local/bin/dropbox-wait-mount $RUNAS || { stop; exit 0; }

/etc/init/dropbox.override

env RUNAS=jaroslav

ตัวอย่างนี้ควรรันหลังจากติดตั้งระบบไฟล์เครือข่ายทั้งหมดแล้วเท่านั้น แต่ยังสามารถเรียกใช้ได้ด้วยตนเอง:

start dropbox #RUNAS=jaroslav

0

ง่ายกว่ามากที่จะใช้ autofs เพื่อเมานต์ nfs สำหรับคุณจากนั้นตามความต้องการ

นี่คือการกำหนดค่าของฉัน

$ grep home  /etc/auto.master 
/home2 /etc/auto.home

$ cat /etc/auto.home

dropbox -intr,nfsv4,soft NFS.intranet:/backups/dropbox

$ echo $HOME
/home2/dropbox

$ id
uid=1001(dropbox) gid=1001(dropbox) groups=1001(dropbox)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.