mirror of https://github.com/deajan/osync
Added target helper service files
parent
88597d6a7a
commit
c07fa8b267
@ -0,0 +1,139 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# osync-srv Two way directory sync daemon
|
||||||
|
#
|
||||||
|
# chkconfig: - 90 99
|
||||||
|
# description: monitors a local directory and syncs to a local or remote \
|
||||||
|
# directory on file changes
|
||||||
|
# processname: /usr/local/bin/osync.sh
|
||||||
|
# config: /etc/osync/*.conf
|
||||||
|
# pidfile: /var/run/osync
|
||||||
|
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: osync-target-helper-srv
|
||||||
|
# Required-Start: $local_fs $time
|
||||||
|
# Required-Stop: $local_fs $time
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: osync-target-helpder daemon
|
||||||
|
# Description: Two way directory sync daemon
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
prog=osync
|
||||||
|
progexec=osync.sh
|
||||||
|
progpath=/usr/local/bin
|
||||||
|
confdir=/etc/osync
|
||||||
|
pidfile=/var/run/$prog-target-helper
|
||||||
|
SCRIPT_BUILD=2018100101
|
||||||
|
|
||||||
|
if [ ! -f $progpath/$progexec ] && [ ! -f $progexec ]; then
|
||||||
|
echo "Cannot find $prog executable in $progpath nor in local path."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -w $(dirname $pidfile) ]; then
|
||||||
|
pidfile=./$prog
|
||||||
|
fi
|
||||||
|
|
||||||
|
start() {
|
||||||
|
if ! ls "$confdir/"*.conf > /dev/null 2>&1; then
|
||||||
|
echo "Cannot find any configuration files in $confdir."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
errno=0
|
||||||
|
|
||||||
|
for cfgfile in "$confdir/"*.conf
|
||||||
|
do
|
||||||
|
if [ -f $progpath/$progexec ]; then
|
||||||
|
$progpath/$progexec $cfgfile --on-changes-target --errors-only > /dev/null 2>&1 &
|
||||||
|
else
|
||||||
|
echo "Cannot find $prog executable in $progpath"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
pid=$!
|
||||||
|
retval=$?
|
||||||
|
|
||||||
|
if [ $? == 0 ]; then
|
||||||
|
echo $pid > "$pidfile-$(basename $cfgfile)"
|
||||||
|
echo "$prog successfully started for configuration file $cfgfile"
|
||||||
|
else
|
||||||
|
echo "Cannot start $prog for configuration file $cfgfile"
|
||||||
|
errno=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
exit $errno
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
if [ ! -f $pidfile-* ]; then
|
||||||
|
echo "No running $prog instances found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for pfile in $pidfile-*
|
||||||
|
do
|
||||||
|
if ps -p$(cat $pfile) > /dev/null 2>&1
|
||||||
|
then
|
||||||
|
kill -TERM $(cat $pfile)
|
||||||
|
if [ $? == 0 ]; then
|
||||||
|
rm -f $pfile
|
||||||
|
echo "$prog instance $(basename $pfile) stopped."
|
||||||
|
else
|
||||||
|
echo "Cannot stop $prog instance $(basename $pfile)"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
rm -f $pfile
|
||||||
|
echo "$prog instance $pfile (pid $(cat $pfile)) is dead but pidfile exists."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
status() {
|
||||||
|
if [ ! -f $pidfile-* ]; then
|
||||||
|
echo "Cannot find any running $prog instance."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
errno=0
|
||||||
|
|
||||||
|
for pfile in $pidfile-*
|
||||||
|
do
|
||||||
|
if ps -p$(cat $pfile) > /dev/null 2>&1
|
||||||
|
then
|
||||||
|
echo "$prog instance $(basename $pfile) is running (pid $(cat $pfile))"
|
||||||
|
else
|
||||||
|
echo "$prog instance $pfile (pid $(cat $pfile)) is dead but pidfile exists."
|
||||||
|
errno=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
exit $errno
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status
|
||||||
|
;;
|
||||||
|
condrestart|try-restart)
|
||||||
|
status || exit 0
|
||||||
|
restart
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start|stop|restart|status}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
@ -0,0 +1,13 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=osync - Target helper service
|
||||||
|
After=time-sync.target local-fs.target network-online.target
|
||||||
|
Requires=time-sync.target local-fs.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/local/bin/osync.sh /etc/osync/%i --on-changes-target --errors-only
|
||||||
|
SuccessExitStatus=0 2
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
@ -0,0 +1,11 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=A robust two way (bidirectional) file sync script based on rsync with fault tolerance
|
||||||
|
After=time-sync.target local-fs.target network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/local/bin/osync.sh /etc/osync/%i --on-changes-target --silent
|
||||||
|
SuccessExitStatus=0 2
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Reference in New Issue