Отправка бэкапов с сервера в dropbox

Подумал, почему бы не отправлять бэкапы с сервера в Dropbox - чтобы не скачивать их вручную каждый раз. Скачиваем dropbox для Linux: http://www.dropbox.com/download/?plat=lnx.x86 Распаковываем полученный архив dropbox-lnx.x86-1.4.8.tar.gz и копируем его содержимое в /usr/local/dropbox Работать с dropbox у меня будет пользователя www-data. Заходим от пользователя www-data и запускаем демон dropbox: su -l www-data /usr/local/dropbox/dropboxd Появляется собщение о том, что нужно привязать этот компьютер (сервер то есть) к моему аккаунту dropbox - для этого надо просто перейти по ссылке, которая содержится в сообщении. Теперь в директории пользователя www-data (/var/www) создастся папка Dropbox, которая и будет синхронизироваться с аккаунтом. В ней создаю символическую ссылку на директорию, в которую сейчас складываюся бэкапы. Теперь, после создания бэкапа, через cron будем запускать демон dropbox, а через несколько минут выключать его. Для этого создаём скрипт /etc/init.d/dropbox
#!/bin/sh ### BEGIN INIT INFO # Provides: dropbox # Required-Start: $local_fs # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the dropbox service # Description: starts dropbox using start-stop-daemon ### END INIT INFO DROPBOX_USERS="www-data" DAEMON=/usr/local/dropbox/dropbox unset DISPLAY start() { echo "Starting dropbox..." for dbuser in $DROPBOX_USERS; do HOMEDIR="$(getent passwd $dbuser | cut -d: -f6)" if [ -x $DAEMON ]; then HOME="$HOMEDIR" start-stop-daemon -b -o -c $dbuser -S -u $dbuser -x $DAEMON fi done } stop() { echo "Stopping dropbox..." for dbuser in $DROPBOX_USERS; do HOMEDIR="$(getent passwd $dbuser | cut -d: -f6)" if [ -x $DAEMON ]; then start-stop-daemon -o -c $dbuser -K -u $dbuser -x $DAEMON fi done } status() { for dbuser in $DROPBOX_USERS; do dbpid="$(pgrep -u $dbuser dropbox)" if [ -z $dbpid ] ; then echo "dropboxd for USER $dbuser: not running." else echo "dropboxd for USER $dbuser: running (pid $dbpid)" fi done } case "$1" in start) start sleep 1 status ;; stop) stop sleep 1 status ;; restart|reload|force-reload) stop start sleep 1 status ;; status) status ;; *) echo "Usage: /etc/init.d/dropbox {start|stop|reload|force-reload|restart|status}" exit 1 esac exit 0
По мотивам рецепта initio.ru.

Leave a Reply

Your email address will not be published. *
You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>