58 lines
1.6 KiB
Bash
Executable file
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
|