SugarSync on Linux

SugarSyncのWindowsクライアントををLinux上で使うために、試行錯誤。

2011/08/04 towerの移設に伴い、コンソール上のXサーバーを立ち上げておくことができなくなったため、内容改定。

大きな問題は、Linux上でのファイルの更新が、すぐSugarSyncのサーバーと同期されないこと。逆に、SugarSyncのサーバー上にあるデータが更新されたときには、ちゃんと同期される。

ただし、SugarSyncファイルマネージャを立ち上げたときには、同期フォルダをスキャンしてきちんと同期を行う。

そこで、cronで定期的に、SugarSyncファイルマネージャの起動停止を行うようにした。

まずは、rc形式のSugarSyncコントロールスクリプトを作成。
このスクリプトで、restartを10分ごとに行うことにより同期を行う。

~/bin/sugarsync。

2011/08/04 exportするDISPLAY変数を、":0.0"からVNCのDISPLAYである":1.0"に変更。

#!/bin/bash
#
# SugarSync
# 

WAIT_TIME=5

export WINEPREFIX=/home/nor/.wine
export LANG=ja_JP.UTF-8
export DISPLAY=:1.0

start() {
    if [ "${CURRENT_PID}" = "" ]; then
	wine ./.wine/drive_c/Program\ Files/SugarSync/SugarSyncManager.exe >& /dev/null & 
    else
	echo SugarSync is running on PID: ${CURRENT_PID}
    fi
}

stop() {
    if [ "${CURRENT_PID}" = "" ]; then
	echo SugarSync is not running
    else
	kill ${CURRENT_PID}
    fi
}

getpid() {
    CURRENT_PID=`ps ax |grep SugarSync|grep -v grep | sed "s/^ *//" | sed "s/ .*$//"`
}

case "$1" in
  start)
	getpid
	start
	;;
  stop)
	getpid
	stop
	;;
  status)
	getpid
	if [ "${CURRENT_PID}" = "" ]; then
	    echo SugarSync is not running
	else
	    echo SugarSync is running on PID: ${CURRENT_PID}
	fi
	;;
  restart)
	getpid
	stop
	sleep ${WAIT_TIME}
	getpid
	start
	;;
  *)
	echo $"Usage: $prog {start|stop|restart}"
	exit 1
esac

exit

だがSugarSyncファイルマネージャはWindows GUIアプリケーションなので、普通に実行すると画面に表示されてしまい、とてもじゃまだ。

そこで、Xのウィンドウを操作するアプリケーションDevil's Pieを導入

~/.devilspie/sugarsync.dsの記述は以下のとおり。

(if
  (matches (application_name) "^SugarSync")
  (set_workspace 4))

SugarSyncを再起動するときに、一瞬ワークスペースに表示されるのが見えてしまうが、フォーカスは移らないし、10分に1回の同期の代償としては耐えられないほどではない。

Linuxマシンだけだったら、rsyncで定期的に同期を行ってしまえばいいのだが、Windowsマシンで、すべてのマシンにrsyncをいれる気にもならないのだよね。一応、データがSugarSyncに保存されるという安心感もあるし...

このブログ記事について

このページは、YAMAGISHI Norimasaが2011年4月22日 00:00に書いたブログ記事です。

ひとつ前のブログ記事は「Spec: rodem 2011/04/19版」です。

次のブログ記事は「インストール: Devilspie」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 5.2.9