CentOS and Dropbox

16 May 2011 22:21

Just because I can really I setup Dropbox syncing on one of my CentOS 5 servers. It’s a little bit of a faff, but, not that hard. The official guide is online, but, this is a shorten version and might not cover everything but it worked on my headless VM just fine.

First up su to whichever user you want to install Dropbox as. You’ll need two terminal’s open so fire them both up now. You’ll also need lynx, gcc and python installed so if you don’t have, sort that out with yum.

In your home directory grab the correct binary for you (x86 or x86_64).

wget -O dropbox.tar.gz http://www.dropbox.com/download/?plat=lnx.x86
wget -O dropbox.tar.gz http://www.dropbox.com/download/?plat=lnx.x86_64

Now unpack it and start it up in your first terminal window.

tar xvfz dropbox.tar.gz
~/.dropbox-dist/dropboxd

Now in your second terminal go to http://dropbox.com using lynx (lynx http://dropbox.com) and login, then using the key shortcut “g” paste in the URL that your first window should now be prompted you to go to. This is to register the machine with your Dropbox account. You’ll need to scroll down the page to re-enter your password. Once done the first window should say hello to you and it’ll quit.

Next up sort out the init.d script. Put the following in /etc/init.d/dropbox and chown 755 it when you’re done.

# chkconfig: 345 85 15
# description: Startup script for dropbox daemon
#
# processname: dropboxd
# pidfile: /var/run/dropbox.pid
# config: /etc/sysconfig/dropbox
#

### BEGIN INIT INFO
# Provides: dropboxd
# Required-Start: $local_fs $network $syslog
# Required-Stop: $local_fs $syslog
# Should-Start: $syslog
# Should-Stop: $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start up the Dropbox file syncing daemon
# Description:       Dropbox is a filesyncing sevice provided by dropbox.com
#                    This service starts up the dropbox daemon.
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

# To configure, add line with DROPBOX_USERS="user1 user2" to /etc/sysconfig/dropbox
# Probably should use a dropbox group in /etc/groups instead.

[ -f /etc/sysconfig/dropbox ] && . /etc/sysconfig/dropbox
prog=dropboxd
lockfile=${LOCKFILE-/var/lock/subsys/$prog}
config=${CONFIG-/etc/sysconfig/dropbox}
RETVAL=0

start() {
    echo -n $"Starting $prog"
    if [ -z $DROPBOX_USERS ] ; then
        echo -n ": unconfigured: $config"
        echo_failure
        echo
        rm -f ${lockfile} ${pidfile}
        RETURN=6
        return $RETVAL
    fi
    for dbuser in $DROPBOX_USERS; do
        daemon --user $dbuser /bin/sh -c "/home/$dbuser/.dropbox-dist/dropboxd&"
    done
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && touch ${lockfile}
    return $RETVAL
}

status() {
    for dbuser in $DROPBOX_USERS; do
        dbpid=`pgrep -u $dbuser dropbox | grep -v grep`
        if [ -z $dbpid ] ; then
            echo "dropboxd for USER $dbuser: not running."
        else
            echo "dropboxd for USER $dbuser: running (pid $dbpid)"
        fi
    done
}

stop() {
    echo -n $"Stopping $prog"
    for dbuser in $DROPBOX_USERS; do
        killproc /home/$dbuser/.dropbox-dist/dropbox
    done
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}

# See how we were called.
case "$1" in
    start)
        start
        ;;
    status)
        status
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    *)
        echo $"Usage: $prog {start|status|stop|restart}"
        RETVAL=3
esac
exit $RETVAL

Edit /etc/sysconfig/dropbox and add the following line to match your linux account where you’ve installed Dropbox.

DROPBOX_USERS="linux_user_name"

Make sure it starts on boot.

chkconfig dropbox on.

That’s it. Enjoy.

Filed: Technology // Tagged: , ,

You can follow any responses to this entry through the RSS 2.0 feed.

You can leave a comment or leave a trackback from your own site.

  • Robert Son Hedler

    Thank you very much, it works very well!!!

  • http://-- steve

    merci!
    Put the above in /etc/init.d/dropbox and chmod 755 it when you’re done.
    not chown;
    thank you!

  • http://www.10fifteen.com.au Simon Inglis

    Thanks for the script. Here’s a minor improvement to handle user home directories that aren’t under /home (as is the case with my Jenkins install)

    45c45,46
    dbuser_home=`cat /etc/passwd | grep “$dbuser” | cut -d”:” -f6`
    > daemon –user $dbuser /bin/sh -c “$dbuser_home/.dropbox-dist/dropboxd&”

  • Jan van der Lugt

    Great script! Better yet, only grep if $dbuser occurs at the start of the line and ends with a semicolon (to avoid matching of a partial username). Same fix for stopping.

    45c45,46
    dbuser_home=`cat /etc/passwd | grep “^$dbuser:” | cut -d”:” -f6`
    > daemon –user $dbuser /bin/sh -c “$dbuser_home/.dropbox-dist/dropboxd&”
    67c68,69
    dbuser_home=`cat /etc/passwd | grep “^$dbuser:” | cut -d”:” -f6`
    > killproc $dbuser_home/.dropbox-dist/dropbox

  • Pingback: Latino » Blog Archive » Instalar como servicio dropbox en ambiente Linux

  • Guest

    it’s chmod 755

 
What's ianteresting?   •   Twitter   •   About   •   Contact
©2013 Ian Winter. All Rights Reserved.   •   Powered by WordPress   •   Hosted at Memset