evobackup/evobackup
2014-06-19 04:55:27 +02:00

58 lines
1.6 KiB
Bash
Executable file

#!/bin/sh
### BEGIN INIT INFO
# Provides: evobackup
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2
# Default-Stop: 1
# Short-Description: Backup manager using rsync and OpenSSH chroot.
### END INIT INFO
set -e
BACKUP_PATH=/backup
case "$1" in
start)
for jail in $(ls -1 ${BACKUP_PATH}/jails |grep -v \.bak); do
mount -t proc proc-chroot ${BACKUP_PATH}/jails/${jail}/proc/
mount -t devtmpfs udev ${BACKUP_PATH}/jails/${jail}/dev/
mount -t devpts devpts ${BACKUP_PATH}/jails/${jail}/dev/pts
chroot ${BACKUP_PATH}/jails/${jail} /usr/sbin/sshd > /dev/null
done
;;
stop)
for jail in $(ls -1 ${BACKUP_PATH}/jails |grep -v \.bak); do
kill $(chroot ${BACKUP_PATH}/jails/${jail} cat /var/run/sshd.pid)
umount ${BACKUP_PATH}/jails/${jail}/proc/
umount ${BACKUP_PATH}/jails/${jail}/dev/pts/
# Need to wait a little time before unmounting /dev
sleep 0.2
umount ${BACKUP_PATH}/jails/${jail}/dev
done
;;
reload|force-reload)
for jail in $(ls -1 ${BACKUP_PATH}/jails |grep -v \.bak); do
kill -HUP \
$(chroot ${BACKUP_PATH}/jails/${jail} cat /var/run/sshd.pid)
done
;;
restart)
for jail in $(ls -1 ${BACKUP_PATH}/jails |grep -v \.bak); do
kill $(chroot ${BACKUP_PATH}/jails/${jail} cat /var/run/sshd.pid)
chroot ${BACKUP_PATH}/jails/${jail} /usr/sbin/sshd > /dev/null
done
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0