Synology-Forum.nl

Packages => 3rd party Packages => SABnzbd (usenet) => Topic gestart door: Martijn85 op 29 mei 2012, 13:47:44

Titel: Backup Script SABnzbd etc.
Bericht door: Martijn85 op 29 mei 2012, 13:47:44
Ik heb een shell script geschreven om de de configuratie bestanden voor de volgende programma`s te kunnen backuppen. Dit script werkt met de pakketten van SynoCommunity (http://www.synocommunity.com).

- AutoSub
- CouchPotato
- CouchPotato Server
- Headphones
- Maraschino
- NZBGet
- OSCam
- SABnzbd
- SickBeard
- Subliminal
- Transmission
- Tvheadend
- uMurmur
- ZNC

Plaats het shell script op een locatie naar eigen keuze, bijvoorbeeld: /usr/local/backup/shell_script

Hoe te gebruiken:

Login via telnet of SSH met de gebruiker root.

Ga naar de (voorbeeld) locatie waar het shell script zich bevindt:

cd /usr/local/backup
De volgende commando`s zijn aanwezig:

- all
- autosub
- couchpotato
- couchpotatoserver
- headphones
- maraschino
- nzbget
- oscam
- sabnzbd
- sickbeard
- subliminal
- transmission
- tvheadend
- umurmur
- znc

Als je de configuratie bestanden van SABnzb wilt backuppen voer je het volgende commando uit:

backup.sh sabnzbd
Als je de configuratie bestanden van alle programma`s wilt backuppen voer je het volgende commando uit:

backup.sh all
De rest van de commando`s is wel duidelijk neem ik aan. Om het script te automatiseren kun je crontab gebruiken.

Hier is de code van het script, je moet zelf even de backup map en de user aanpassen naar eigen keuze. Je kunt het script ook downloaden (http://www.mdevries.org/downloads25.html).

#!/bin/sh

# Backup script for different packages
# Works with the packages from www.synocommunity.com and www.mdevries.org
# This script is created by www.mdevries.org

AUTOSUB="/usr/local/autosub"
COUCHPOTATO="/usr/local/couchpotato/var"
COUCHPOTATOSERVER="/usr/local/couchpotatoserver/var"
HEADPHONES="/usr/local/headphones/var"
MARASCHINO="/usr/local/maraschino/var"
NZBGET="/usr/local/nzbget/var"
OSCAM="/usr/local/oscam/var"
SABNZBD="/usr/local/sabnzbd/var"
SICKBEARD="/usr/local/sickbeard/var"
SUBLIMINAL="/usr/local/subliminal/var"
TRANSMISSION="/usr/local/transmission/var"
TVHEADEND="/usr/local/tvheadend/var"
UMURMUR="/usr/local/umurmur/var"
ZNC="/usr/local/znc/var"

BACKUP="/var/services/homes/martijn/Backup"
USER="martijn:users"

autosub_backup ()
{
if [ -d ${AUTOSUB} ]
then
mkdir -p ${BACKUP}/AutoSub
cp ${AUTOSUB}/config.properties ${BACKUP}/AutoSub
cp ${AUTOSUB}/database.db ${BACKUP}/AutoSub
cp ${AUTOSUB}/ExamplePostProcess.py ${BACKUP}/AutoSub
chown -R ${USER} ${BACKUP}/AutoSub
else
        return 1
fi
}

couchpotato_backup ()
{
if [ -d ${COUCHPOTATO} ]
then
mkdir -p ${BACKUP}/CouchPotato
cp ${COUCHPOTATO}/config.ini ${BACKUP}/CouchPotato
cp ${COUCHPOTATO}/data.db ${BACKUP}/CouchPotato
chown -R ${USER} ${BACKUP}/CouchPotato
    else
        return 1
fi
}

couchpotatoserver_backup ()
{
if [ -d ${COUCHPOTATOSERVER} ]
then
mkdir -p ${BACKUP}/CouchPotatoServer
cp ${COUCHPOTATOSERVER}/settings.conf ${BACKUP}/CouchPotatoServer
cp ${COUCHPOTATOSERVER}/couchpotato.db ${BACKUP}/CouchPotatoServer
chown -R ${USER} ${BACKUP}/CouchPotatoServer
    else
        return 1
fi
}

headphones_backup ()
{
if [ -d ${HEADPHONES} ]
then
mkdir -p ${BACKUP}/Headphones
cp ${HEADPHONES}/config.ini ${BACKUP}/Headphones
cp ${HEADPHONES}/headphones.db ${BACKUP}/Headphones
chown -R ${USER} ${BACKUP}/Headphones
    else
        return 1
fi
}

maraschino_backup ()
{
if [ -d ${MARASCHINO} ]
then
mkdir -p ${BACKUP}/Maraschino
cp ${MARASCHINO}/maraschino.db ${BACKUP}/Maraschino
chown -R ${USER} ${BACKUP}/Maraschino
else
        return 1
fi
}


nzbget_backup ()
{
if [ -d ${NZBGET} ]
then
mkdir -p ${BACKUP}/NZBGet
cp ${NZBGET}/nzbget.conf ${BACKUP}/NZBGet
cp ${NZBGET}/postprocess.conf ${BACKUP}/NZBGet
cp ${NZBGET}/settings.php ${BACKUP}/NZBGet
chown -R ${USER} ${BACKUP}/NZBGet
    else
        return 1
fi
}

oscam_backup ()
{
if [ -d ${OSCAM} ]
then
mkdir -p ${BACKUP}/OSCam
cp ${OSCAM}/oscam.conf ${BACKUP}/OSCam
chown -R ${USER} ${BACKUP}/OSCam
    else
        return 1
fi
}

sabnzbd_backup ()
{
if [ -d ${SABNZBD} ]
then
mkdir -p ${BACKUP}/SABnzbd
cp ${SABNZBD}/config.ini ${BACKUP}/SABnzbd
cp ${SABNZBD}/admin/sabnzbd.crt ${BACKUP}/SABnzbd
cp ${SABNZBD}/admin/sabnzbd.key ${BACKUP}/SABnzbd
chown -R ${USER} ${BACKUP}/SABnzbd
    else
        return 1
fi
}

sickbeard_backup ()
{
if [ -d ${SICKBEARD} ]
then
mkdir -p ${BACKUP}/SickBeard
cp ${SICKBEARD}/config.ini ${BACKUP}/SickBeard
cp ${SICKBEARD}/sickbeard.db ${BACKUP}/SickBeard
chown -R ${USER} ${BACKUP}/SickBeard
    else
        return 1
fi
}

subliminal_backup ()
{
if [ -d ${SUBLIMINAL} ]
then
mkdir -p ${BACKUP}/Subliminal
cp ${SUBLIMINAL}/config.ini ${BACKUP}/Subliminal
cp ${SUBLIMINAL}/subliminal.db ${BACKUP}/Subliminal
chown -R ${USER} ${BACKUP}/Subliminal
    else
        return 1
fi
}

transmission_backup ()
{
if [ -d ${TRANSMISSION} ]
then
mkdir -p ${BACKUP}/Transmission
cp ${TRANSMISSION}/settings.json ${BACKUP}/Transmission
chown -R ${USER} ${BACKUP}/Transmission
    else
        return 1
fi
}

tvheadend_backup ()
{
if [ -d ${TVHEADEND} ]
then
mkdir -p ${BACKUP}/Tvheadend
cp -r ${TVHEADEND}/* ${BACKUP}/Tvheadend
rm ${BACKUP}/Tvheadend/tvheadend.pid
chown -R ${USER} ${BACKUP}/Tvheadend
else
return 1
fi
}

umurmur_backup ()
{
if [ -d ${UMURMUR} ]
then
mkdir -p ${BACKUP}/uMurmur
cp ${UMURMUR}/umurmur.conf ${BACKUP}/uMurmur
chown -R ${USER} ${BACKUP}/uMurmur
    else
        return 1
fi
}

znc_backup ()
{
if [ -d ${ZNC} ]
then
mkdir -p ${BACKUP}/ZNC
cp ${ZNC}/configs/znc.conf ${BACKUP}/ZNC
cp ${ZNC}/znc.pem ${BACKUP}/ZNC
chown -R ${USER} ${BACKUP}/ZNC
    else
        return 1
fi
}


case $1 in
autosub)
if autosub_backup; then
echo Backup AutoSub ...
autosub_backup
else
echo AutoSub not found ...
            exit 0
        fi
        ;;

couchpotato)
if couchpotato_backup; then
echo Backup CouchPotato ...
couchpotato_backup
else
echo CouchPotato not found ...
            exit 0
        fi
        ;;

couchpotatoserver)
if couchpotatoserver_backup; then
echo Backup CouchPotato Server ...
couchpotatoserver_backup
else
echo CouchPotato Server not found ...
            exit 0
        fi
        ;;

headphones)
if headphones_backup; then
echo Backup Headphones ...
headphones_backup
else
echo Headphones not found ...
            exit 0
        fi
        ;;

maraschino)
if maraschino_backup; then
echo Backup Maraschino ...
maraschino_backup
else
echo Maraschino not found ...
            exit 0
        fi
        ;;

nzbget)
if nzbget_backup; then
echo Backup NZBGet ...
nzbget_backup
else
echo NZBGet not found ...
            exit 0
        fi
        ;;

oscam)
if oscam_backup; then
echo Backup OSCam ...
oscam_backup
else
echo OSCam not found ...
exit 0
fi
;;

sabnzbd)
if sabnzbd_backup; then
echo Backup SABnzbd ...
sabnzbd_backup
else
echo SABnzbd not found ...
            exit 0
        fi
        ;;

sickbeard)
if sickbeard_backup; then
echo Backup SickBeard ...
sickbeard_backup
else
echo SickBeard not found ...
            exit 0
        fi
        ;;

subliminal)
if subliminal_backup; then
echo Backup Subliminal ...
subliminal_backup
else
echo Subliminal not found ...
            exit 0
        fi
        ;;

transmission)
if transmission_backup; then
echo Backup Transmission ...
transmission_backup
else
echo Transmission not found ...
exit 0
fi
;;

tvheadend)
if tvheadend_backup; then
echo Backup Tvheadend ...
tvheadend_backup
else
echo Tvheadend not found ...
exit 0
fi
;;

umurmur)
if umurmur_backup; then
echo Backup uMurmur ...
umurmur_backup
else
echo uMurmur not found ...
exit 0
fi
;;

znc)
if znc_backup; then
echo Backup ZNC ...
znc_backup
else
echo ZNC not found ...
            exit 0
        fi
        ;;

all)
if autosub_backup; then
echo Backup AutoSub ...
autosub_backup
else
echo AutoSub not found ...
fi

if couchpotato_backup; then
echo Backup CouchPotato ...
couchpotato_backup
else
echo CouchPotato not found ...
fi

if couchpotatoserver_backup; then
echo Backup CouchPotato Server ...
couchpotatoserver_backup
else
echo CouchPotato Server not found ...
fi

if headphones_backup; then
echo Backup Headphones ...
headphones_backup
else
echo Headphones not found ...
fi

if maraschino_backup; then
echo Backup Maraschino ...
maraschino_backup
else
echo Maraschino not found ...
fi

if nzbget_backup; then
echo Backup NZBGet ...
nzbget_backup
else
echo NZBGet not found ...
fi

if oscam_backup; then
echo Backup OSCam ...
oscam_backup
else
echo OSCam not found ...
fi

if sabnzbd_backup; then
echo Backup SABnzbd ...
sabnzbd_backup
else
echo SABnzbd not found ...
fi

if sickbeard_backup; then
echo Backup SickBeard ...
sickbeard_backup
else
echo SickBeard not found ...
fi

if subliminal_backup; then
echo Backup Subliminal ...
subliminal_backup
else
echo Subliminal not found ...
fi

if transmission_backup; then
echo Backup Transmission ...
transmission_backup
else
echo Transmission not found ...
fi

if tvheadend_backup; then
echo Backup Tvheadend ...
tvheadend_backup
else
echo Tvheadend not found ...
fi

if umurmur_backup; then
echo Backup uMurmur ...
umurmur_backup
else
echo uMurmur not found ...
fi

if znc_backup; then
echo Backup ZNC ...
znc_backup
else
echo ZNC not found ...
fi
;;

*)
echo "Usage: $0 [all|autosub|couchpotato|couchpotatoserver|headphones|maraschino|nzbget|oscam|sabnzbd|sickbeard|subliminal|transmission|tvheadend|umurmur|znc]"
exit 1
;;
esac
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Donny op 29 mei 2012, 17:17:16
Wat is het verschil tussen jou script en die van raptile?
viewtopic.php?f=48&t=9338 (http://www.synology-forum.nl/viewtopic.php?f=48&t=9338)
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Matr1x op 29 mei 2012, 18:02:57
Het script van raptile is veel uitgebreider en bedoelt voor een dagelijkse automatische backup. Het script van Martijn85 is vrij eenvoudig en bedoelt om handmatig uit te voeren.

Beide scripts zijn zeer bruikbaar en leerzaam voor als je zelf Linux script wil maken om commando's uit te voeren. Bij deze dus ook mijn dank voor het delen er van.
Titel: Re: Backup Script SABnzbd etc.
Bericht door: raptile op 30 mei 2012, 00:07:16
Citaat van: "Donny"
Wat is het verschil tussen jou script en die van raptile?
viewtopic.php?f=48&t=9338 (http://www.synology-forum.nl/viewtopic.php?f=48&t=9338)

Er zit niet zoveel verschil in als je doel is om slechts een backup te maken van je bestanden.
je kunt ook dit script in je cron (/etc/crontan) plaatsen zodat hij dagelijks backups maakt.
mijn script voert echter nog een aantal controles uit voordat de backup wordt gedaan.
De bestanden worden ingepakt in een zip bestand en er worden 7 versies bewaard voordat hij de oude overschrijft.
Daarnaast worden er logfiles weg geschreven en naar je gemaild.

Mijn script lijkt veel groter omdat ik veel meer bestanden backup.
Maar die kun je er natuurlijk tussenuit filteren.
Ik vindt het persoonlijk erg prettig als er controles worden uitgevoerd voor/tijdens en na het aanmaken van de backup.
Daarnaast wil ik per mail zien of alles goed is gegaan en niet in een logfile hoeven zoeken en wil ik meerdere versies van mn backup hebben.

maar als je al deze functionaliteiten niet hoeft te hebben is het script van Martijn meer dan genoeg.
Titel: Re: Backup Script SABnzbd etc.
Bericht door: BZwart op 30 mei 2012, 10:52:02
Citaat van: "Martijn85"
Hier is de code van het script, je moet zelf even de backup map en de user aanpassen naar eigen keuze.
Ik heb het backup pad aangepast maar moet ik ook nog iets/wat aanpassen in USER="user:users" ?
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Matr1x op 30 mei 2012, 10:59:58
Citaat van: "BZwart"
Citaat van: "Martijn85"
Hier is de code van het script, je moet zelf even de backup map en de user aanpassen naar eigen keuze.
Ik heb het backup pad aangepast maar moet ik ook nog iets/wat aanpassen in USER="user:users" ?

Dat moet je zeker doen aangezien gebruiker "user" waarschijnlijk niet bestaat. De eerste is dus de gebruiker (owner) en de tweede is de groep. Dus USER="BZwart:users" als je wilt dat dat NZwart de eigenaar wordt en alles mag.

Maar het kan ook zomaar zijn dat als je niks verandert, de gebruiker die het script start (user) de eigenaar wordt. Dit verwacht ik niet, maar dat kan Martijn85 wel bevestigen.
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Martijn85 op 30 mei 2012, 11:20:14
Citaat van: "Matr1x"
Dat moet je zeker doen aangezien gebruiker "user" waarschijnlijk niet bestaat. De eerste is dus de gebruiker (owner) en de tweede is de groep. Dus USER="BZwart:users" als je wilt dat dat NZwart de eigenaar wordt en alles mag.

Maar het kan ook zomaar zijn dat als je niks verandert, de gebruiker die het script start (user) de eigenaar wordt. Dit verwacht ik niet, maar dat kan Martijn85 wel bevestigen.

Wat Matr1x hier aangeeft klopt. Omdat je het script als root uitvoert kun je de backup bestanden niet meer aanpassen omdat root de rechten krijgt. Ik zelf heb mijn eigen naam gebruikt maar je kunt ook de admin user gebruiker, dan wordt het zo:

USER="admin:users"
Titel: Re: Backup Script SABnzbd etc.
Bericht door: BZwart op 30 mei 2012, 11:43:27
Bedank, ik heb het aangepast. Ik heb aanpaste backup script naar "/usr/local/backup" gekopieerd, maar loop nu tegen het volgende probleem aan:


DiskStation> cd /usr/local/backup
DiskStation> dir
drwxr-xr-x    2 root     root          4096 May 30 11:41 .
drwxr-xr-x   10 root     root          4096 May 30 11:07 ..
-rw-r--r--    1 root     root          3827 May 30 11:41 backup

DiskStation> cd /usr/local/backup
DiskStation> backup sabnzbd
-ash: backup: not found

Vergeet ik nog iets?
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Matr1x op 30 mei 2012, 11:51:38
Citaat van: "BZwart"
Bedank, ik heb het aangepast. Ik heb aanpaste backup script naar "/usr/local/backup" gekopieerd, maar loop nu tegen het volgende probleem aan:


DiskStation> cd /usr/local/backup
DiskStation> dir
drwxr-xr-x    2 root     root          4096 May 30 11:41 .
drwxr-xr-x   10 root     root          4096 May 30 11:07 ..
-rw-r--r--    1 root     root          3827 May 30 11:41 backup

DiskStation> cd /usr/local/backup
DiskStation> backup sabnzbd
-ash: backup: not found

Vergeet ik nog iets?

Martijn85 is de stap vergeten te vermelden om het script eXecutable (uitvoerbaar) te maken:
chmod +x backup.sh
Jij hebt zo te zien geen extensie .sh gebruikt voor het script, dus kun je eerst dit doen:
mv backup backup.sh
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Martijn85 op 30 mei 2012, 11:55:09
Als je gewoon het uitvoert op de volgende manier doet die het hier prima, zonder aanpassingen:

sh backup all
Via crontab kun je gewoon het volledige pad gebruiken:

/usr/local/backup/backup all
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Martijn85 op 30 mei 2012, 12:03:20
Nog een paar pakketten toegevoegd, zie de begin post voor alle pakketten.
Titel: Re: Backup Script SABnzbd etc.
Bericht door: BZwart op 31 mei 2012, 10:05:01
Citaat van: "Martijn85"
Nog een paar pakketten toegevoegd, zie de begin post voor alle pakketten.
Het wil maar niet lukken, net het laatste script gekopieerd, krijg nu de volgende fout melding:

DiskStation> sh backup.sh sabnzbd
: not foundline 2:
: not foundline 6:
: not foundline 17:
: not foundline 20:
: not foundline 22: {
backup.sh: line 150: syntax error: unexpected word (expecting "in")

Iemand nog tips?
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Martijn85 op 31 mei 2012, 10:44:51
Wat heb je precies aangepast in het script? Kun je jou script eens posten?

Citaat van: "BZwart"
backup.sh: line 150: syntax error: unexpected word (expecting "in")

Lijkt er op dat je "in" hebt verwijdert van deze regel:

case $1 in
Titel: Re: Backup Script SABnzbd etc.
Bericht door: BZwart op 31 mei 2012, 10:47:58
Dit staat bij mij in regel 150
case $1 in
Ik heb alleen het backup pad en de user aangepast, verder is het script origineel.
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Martijn85 op 31 mei 2012, 11:11:29
Wat voor rechten heeft het bestand? Wat ik niet heb aangegeven is dat hij 0755 moet hebben om het script te kunnen uitvoeren.

chmod 755 /usr/local/backup/backup.sh
En welke pakketten heb je geïnstalleerd? Van SynoCommunity of Zeblon?
Titel: Re: Backup Script SABnzbd etc.
Bericht door: BZwart op 31 mei 2012, 11:30:30
Citaat van: "Martijn85"
Wat voor rechten heeft het bestand? Wat ik niet heb aangegeven is dat hij 0755 moet hebben om het script te kunnen uitvoeren.

chmod 755 /usr/local/backup/backup.sh
En welke pakketten heb je geïnstalleerd? Van SynoCommunity of Zeblon?
Ik ben eerder deze week overgegaan naar de pakketten van SynoCommunity.

rechten:
-rwxr-xr-x    1 root     root          6428 May 31 11:26 backup.shNog steeds de zelfde foutmelding

PS, ik heb het script op een andere locatie staan, kan dat het probleem zijn?
/opt/home/backup.sh
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Martijn85 op 31 mei 2012, 11:44:04
Heb het script zelf ook even op de andere locatie staan, hier gaat die goed.

DS> /opt/home/backup.sh sabnzbd
Backup SABnzbd ...
DS>

Begrijp dus even niet waarom bij jou die foutmeldingen komen...
De errors die die aangeeft zijn ook op regels waar een lege regel staat  :roll:
Titel: Re: Backup Script SABnzbd etc.
Bericht door: BZwart op 31 mei 2012, 11:53:19
Het vreemde is als ik het script probeer uit te voeren zonder het "sh" commando vooraf krijg ik dit

DiskStation> /opt/home/backup.sh sabnzbd
-ash: /opt/home/backup.sh: not found
DiskStation>
Titel: Re: Backup Script SABnzbd etc.
Bericht door: raptile op 31 mei 2012, 14:27:11
Ga eens naar /opt/home en voer het script daar eens uit met:
./backup.sh sabnzbd

wat doet ie dan?
Titel: Re: Backup Script SABnzbd etc.
Bericht door: BZwart op 31 mei 2012, 15:02:07
Citaat van: "raptile"
Ga eens naar /opt/home en voer het script daar eens uit met:
./backup.sh sabnzbd

wat doet ie dan?
Helaas, de zelfde foutmelding

DiskStation> cd /opt/home
DiskStation> dir
drwxr-xr-x    2 root     root          4096 May 31 12:03 .
drwxr-xr-x   16 root     root          4096 May 21 20:11 ..
-rwxr-xr-x    1 root     root          6428 May 31 12:03 backup.sh
DiskStation> ./backup.sh sabnzbd
-ash: ./backup.sh: not found
DiskStation>
Titel: Re: Backup Script SABnzbd etc.
Bericht door: raptile op 31 mei 2012, 15:10:18
Citaat van: "BZwart"
Citaat van: "raptile"
Ga eens naar /opt/home en voer het script daar eens uit met:
./backup.sh sabnzbd

wat doet ie dan?
Helaas, de zelfde foutmelding

-ash: ./backup.sh: not found

Kun je de output hier aub kunnen posten van onderstaande?
[code]
whoami[ENTER]

which ash [ENTER]

cd /opt/home [ENTER]

pwd [ENTER]

ls -l | grep backup.sh

cat backup.sh
[code]

Ik ben bang dat er een verwijsindex niet klopt o.i.d.
Heb je het script ook al eens op een andere locatie geplaatst en geprobeerd uit te voeren?
Titel: Re: Backup Script SABnzbd etc.
Bericht door: BZwart op 31 mei 2012, 16:08:06
Aleen de output van "cat backup.sh" heb ik niet volledig kunnen pakken.

BusyBox v1.16.1 (2012-04-13 04:26:57 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

DiskStation> whoami
root
DiskStation> which ash
/bin/ash
DiskStation> cd /opt/home
DiskStation> pwd
/opt/home
DiskStation> ls -l | grep backup.sh
-rwxr-xr-x    1 root     root          6428 May 31 12:03 backup.sh
DiskStation> cat backup.sh

}

nzbget_backup ()
{
        if [ -d ${NZBGET} ]
        then
                mkdir -p ${BACKUP}/NZBGet
                cp ${NZBGET}/nzbget.conf ${BACKUP}/NZBGet
                cp ${NZBGET}/postprocess.conf ${BACKUP}/NZBGet
                cp ${NZBGET}/settings.php ${BACKUP}/NZBGet
                chown -R ${USER} ${BACKUP}/NZBGet
        else
                return 1
        fi
}

sabnzbd_backup ()
{
        if [ -d ${SABNZBD} ]
        then
                mkdir -p ${BACKUP}/SABnzbd
                cp ${SABNZBD}/config.ini ${BACKUP}/SABnzbd
                chown -R ${USER} ${BACKUP}/SABnzbd
        else
                return 1
        fi
}

sickbeard_backup ()
{
        if [ -d ${SICKBEARD} ]
        then
                mkdir -p ${BACKUP}/SickBeard
                cp ${SICKBEARD}/config.ini ${BACKUP}/SickBeard
                cp ${SICKBEARD}/sickbeard.db ${BACKUP}/SickBeard
                chown -R ${USER} ${BACKUP}/SickBeard
        else
                return 1
        fi
}

transmission_backup ()
{
        if [ -d ${TRANSMISSION} ]
        then
                mkdir -p ${BACKUP}/Transmission
                cp ${TRANSMISSION}/settings.json ${BACKUP}/Transmission
                chown -R ${USER} ${BACKUP}/Transmission
        else
                return 1
        fi
}

umurmur_backup ()
{
        if [ -d ${UMURMUR} ]
        then
                mkdir -p ${BACKUP}/uMurmur
                cp ${UMURMUR}/umurmur.conf ${BACKUP}/uMurmur
                chown -R ${USER} ${BACKUP}/uMurmur
        else
                return 1
        fi
}

znc_backup ()
{
        if [ -d ${ZNC} ]
        then
                mkdir -p ${BACKUP}/ZNC
                cp ${ZNC}/znc.conf ${BACKUP}/ZNC
                chown -R ${USER} ${BACKUP}/ZNC
        else
                return 1
        fi
}


case $1 in
        autosub)
        if autosub_backup; then
                echo Backup AutoSub ...
                autosub_backup
        else
                echo AutoSub not found ...
                exit 0
        fi
        ;;

        couchpotato)
        if couchpotato_backup; then
                echo Backup CouchPotato ...
                couchpotato_backup
        else
                echo CouchPotato not found ...
                exit 0
        fi
        ;;

        couchpotatoserver)
        if couchpotatoserver_backup; then
                echo Backup CouchPotato Server ...
                couchpotatoserver_backup
        else
                echo CouchPotato Server not found ...
                exit 0
        fi
        ;;

        headphones)
        if headphones_backup; then
                echo Backup Headphones ...
                headphones_backup
        else
                echo Headphones not found ...
                exit 0
        fi
        ;;

        nzbget)
        if nzbget_backup; then
                echo Backup NZBGet ...
                nzbget_backup
        else
                echo NZBGet not found ...
                exit 0
        fi
        ;;

        sabnzbd)
        if sabnzbd_backup; then
                echo Backup SABnzbd ...
                sabnzbd_backup
        else
                echo SABnzbd not found ...
                exit 0
        fi
        ;;

        sickbeard)
        if sickbeard_backup; then
                echo Backup SickBeard ...
                sickbeard_backup
        else
                echo SickBeard not found ...
                exit 0
        fi
        ;;

        transmission)
        if transmission_backup; then
                echo Backup Transmission ...
                transmission_backup
        else
                echo Transmission not found ...
                exit 0
        fi
        ;;

        umurmur)
        if umurmur_backup; then
                echo Backup uMurmur ...
                umurmur_backup
        else
                echo uMurmur not found ...
                exit 0
        fi
        ;;

        znc)
        if znc_backup; then
                echo Backup ZNC ...
                znc_backup
        else
                echo ZNC not found ...
                exit 0
        fi
        ;;

        all)
        if autosub_backup; then
                echo Backup AutoSub ...
                autosub_backup
        else
                echo AutoSub not found ...
        fi

        if couchpotato_backup; then
                echo Backup CouchPotato ...
                couchpotato_backup
        else
                echo CouchPotato not found ...
        fi

        if couchpotatoserver_backup; then
                echo Backup CouchPotato Server ...
                couchpotatoserver_backup
        else
                echo CouchPotato Server not found ...
        fi

        if headphones_backup; then
                echo Backup Headphones ...
                headphones_backup
        else
                echo Headphones not found ...
        fi

        if nzbget_backup; then
                echo Backup NZBGet ...
                nzbget_backup
        else
                echo NZBGet not found ...
        fi

        if sabnzbd_backup; then
                echo Backup SABnzbd ...
                sabnzbd_backup
        else
                echo SABnzbd not found ...
        fi

        if sickbeard_backup; then
                echo Backup SickBeard ...
                sickbeard_backup
        else
                echo SickBeard not found ...
        fi

        if transmission_backup; then
                echo Backup Transmission ...
                transmission_backup
        else
                echo Transmission not found ...
        fi

        if umurmur_backup; then
                echo Backup uMurmur ...
                umurmur_backup
        else
                echo uMurmur not found ...
        fi

        if znc_backup; then
                echo Backup ZNC ...
                znc_backup
        else
                echo ZNC not found ...
        fi
        ;;

*)
        echo "Usage: $0 [all|autosub|couchpotato|couchpotatoserver|headphones|nzbget|sabnzbd|sickbeard|transmission|umurmur|znc]"
        exit 1
        ;;
esac
DiskStation>
Titel: Re: Backup Script SABnzbd etc.
Bericht door: raptile op 31 mei 2012, 16:50:27
Ok, het eerste gedeelte van dit bestand is juist belangrijk :). (ik wil even zeker weten of alles goed staat)

Zou je deze aub kunnen plakken?

met het commando "head -20 backup.sh" krijg je de eerste 20 regels te zien van dit bestand. Dit moet denk ik voldoende zijn.

(Hopelijk werkt het head commando op de Synology)

Als ook hier alles goed staat (zoals in de openingpost) zou je het eens op een andere locatie op je schijf kunnen proberen (Bijvoorbeeld in /tmp) om te kijken of het vanaf die plek ook fout gaat of niet.
Titel: Re: Backup Script SABnzbd etc.
Bericht door: BZwart op 31 mei 2012, 16:57:22
Hier de eerste 20 regels. Ik ben straks weg, ik zal het sript morgen eens op een andere locatie proberen. Bedankt voor alle hulp.

DiskStation> cd /opt/home
DiskStation> head -20 backup.sh
#!/bin/sh

# Backup script for AutoSub, CouchPotato, CouchPotato Server, Headphones, NZBGet, SABnzbd, SickBeard, Transmission, uMurmur and ZNC
# Works with the packages from www.synocommunity.com
# This script is created by www.mdevries.org

AUTOSUB="/usr/local/autosub"
COUCHPOTATO="/usr/local/couchpotato/var"
COUCHPOTATOSERVER="/usr/local/couchpotatoserver/var"
HEADPHONES="/usr/local/headphones/var"
NZBGET="/usr/local/nzbget/var"
SABNZBD="/usr/local/sabnzbd/var"
SICKBEARD="/usr/local/sickbeard/var"
TRANSMISSION="/usr/local/transmission/var"
UMURMUR="/usr/local/umurmur/var"
ZNC="/usr/local/znc/var/configs"

BACKUP="/var/services/homes/Bauke/Backup"
USER="Bauke:users"

DiskStation>
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Matr1x op 31 mei 2012, 19:47:01
Ik volg dit draadje met veel belangstelling. Omdat ik me niet voor kon stellen dat het niet werkt heb ik het zelf even geprobeerd. En met sh ervoor werkt het prima:
Citaat
DiskStation> cd /volume1/public/backup/
DiskStation> pwd
/volume1/public/backup

DiskStation> backup.sh sabnzbd
-ash: backup.sh: not found

DiskStation> sh backup.sh sabnzbd
Backup SABnzbd ...
DiskStation>

Ik open in de Windows Verkenner \diskstationpublicbackup.sh en copy & paste de het script. Hier pas ik alleen het volgende aan:
BACKUP="/volume1/public/backup"
USER="admin:users"

Vervolgens in telnet sessie even de commando's doen zoals in de quote hierboven.
Titel: Re: Backup Script SABnzbd etc.
Bericht door: raptile op 31 mei 2012, 22:44:44
Citaat van: "Matr1x"
DiskStation> backup.sh sabnzbd
-ash: backup.sh: not found

Dat werkt inderdaad niet.
Maar zet er eens een ./ voor (in de dir waar het bestand staat)
./backup.sh sabnzbd

Dan moet het wel werken
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Matr1x op 01 juni 2012, 00:21:24
Citaat van: "raptile"
Dat werkt inderdaad niet.
Maar zet er eens een ./ voor (in de dir waar het bestand staat)
./backup.sh sabnzbd

Dan moet het wel werken

Klopt, dat werkt wel idd. En ./ wil toch alleen maar zeggen voer uit op huidige locatie? Zoals ../ dus een map lager is... Waarom werkt het niet zonder ./?
Titel: Re: Backup Script SABnzbd etc.
Bericht door: raptile op 01 juni 2012, 00:43:06
Citaat van: "Matr1x"
Citaat van: "raptile"
Dat werkt inderdaad niet.
Maar zet er eens een ./ voor (in de dir waar het bestand staat)
./backup.sh sabnzbd

Dan moet het wel werken

Klopt, dat werkt wel idd. En ./ wil toch alleen maar zeggen voer uit op huidige locatie? Zoals ../ dus een map lager is... Waarom werkt het niet zonder ./?

Dat komt doordat je dan aangeeft dat je het script inderdaad vanaf de huidige directory wilt starten.
Ook al zit je als gebruiker in /home/Matr1x is het bij Unix niet zo dat je de commando's in de huidige dir start.
Unix gebruikt hiervoor het $PATH varable in het profiel van de gebruiker.
In je profiel staat bijvoorbeeld dat het commando dat je uitvoerd gestart moet worden door applicatie X die op locatie Y staat.
Bijvoorbeeld:
Als je sh voor je script zet, snapt unix dat je het script wil uitvoeren met de shell app (om het zo maar even te noemen)
Met het commando "which"kun je achterhalen waar de applicatie zich bevind volgens jouw profiel.
RapOlogy> which bash
/opt/bin/bash
RapOlogy> which cat
/bin/cat
RapOlogy> which sh
/bin/sh

etc.

Als je dus "sh scriptnaam.sh" start zeg je eigenlijk "/bin/sh scriptnaam.sh"
Dus, voer script "scriptnaam.sh"uit met applicatie sh

Je krijgt de foutmelding "backup.sh: not found" dus omdat de shell denkt dat je iets wilt starten met applicatie backup.sh. En die staat niet in je profiel gedefineerd, staat ook niet in de standaard applicatie folder(s) zoals /bin/ en daarom komt hij met de foutmelding dat APPLICATIE backup.sh niet gevonden kan worden.

Doordat je ./ gebruikt snapt unix dat je iets wilt doen in de huidige directory.

In backup.sh staat in de eerste regel "#!/bin/sh"
In de eerste regel wordt altijd gecontroleerd waarmee je een script wilt openen.
Hij ignored de hash tag # op de eerste regel omdat de shell weet dat deze eerste regel puur voor hem bedoeld is. (om het zo maar even te zeggen)
Als je twee varianten van sh geinstalleerd hebt staan, kun je in het script laten weten dat hij gebruik moet maken van sh versie 1 of sh versie 2.

Zet je deze regel er niet in, bestaat de kans dat het script gewoon niet draait.


Ik denk dan ook dat het probleem van BZwart hierin te zoeken is.
als hij het commando "sh backup.sh" gebruikt, en dat gaat fout, zal er gekeken worden (met "which sh") of sh ook daadwerkelijk in de directory staat die staat opgegeven voor sh.

(ash is een andere versie/variant van sh of een ander benaming voor sh zo ver mij bekend is. ze verwijzen beiden naar Busybox. je script zal dus door busybox worden afgehandeld als een bash script. (maar ik kan er naast zitten))
Volgens mij is het so dat SH gewoon voor SHell script staat en (BASH) ASH ook, maar dan de nieuwere variant.
Ze komen beiden uit de Bourne familie.
SH was er eerst (ontwikkeld door Stephen bourne) en toen kwam BASH (BOURNE AGAIN shell, ontwikkeld door Brian FOX)) en volgens mij is dat nu ash. (Almquist SHell, ontwikkeld door Kennith Almquist.)

In het script staat dat er gebruik gemaakt moet worden van "/bin/sh" en ik vraag mij af of "sh" wel in de "/bin" dir staat als Symlink (een soort van snelkoppeling) die verwijst naar Busybox.

cd /bin
ls -latr | grep sh

en de uitkomst moet zijn
sh -> busybox
ash -> busybox


Ik hoop dat ik het een beetje duidelijk uit heb kunnen leggen.
mocht het onduidelijk zijn of er andere vragen naar boven zijn gekomen hoor ik dat graag.
Titel: Re: Backup Script SABnzbd etc.
Bericht door: BZwart op 01 juni 2012, 10:16:25
Dat ziet er bij mij goed uit.

DiskStation> cd /bin
DiskStation> ls -latr | grep sh
lrwxrwxrwx    1 root     root             7 Apr 18 09:22 sh -> busybox
lrwxrwxrwx    1 root     root             7 Apr 18 09:22 ash -> busybox
DiskStation>

EDIT: Ik heb net geprobeerd het script op een andere locatie te zetten, zelfde probleem.
Titel: Re: Backup Script SABnzbd etc.
Bericht door: raptile op 01 juni 2012, 14:07:13
Citaat van: "BZwart"
Dat ziet er bij mij goed uit.

DiskStation> cd /bin
DiskStation> ls -latr | grep sh
lrwxrwxrwx    1 root     root             7 Apr 18 09:22 sh -> busybox
lrwxrwxrwx    1 root     root             7 Apr 18 09:22 ash -> busybox
DiskStation>

EDIT: Ik heb net geprobeerd het script op een andere locatie te zetten, zelfde probleem.


Nog twee testjes...

which sh

Wat krijg je dan terug?

En probeer het script eens zo te starten:

cd /opt (om even in een andere dir te zitten)
/bin/sh /opt/home/backup.sh


Gaat dit ook fout?
Titel: Re: Backup Script SABnzbd etc.
Bericht door: BZwart op 01 juni 2012, 17:52:29
Helaas, zelfde resultaat.

DiskStation> which sh
/bin/sh
DiskStation>

DiskStation> cd /opt
DiskStation> /bin/sh /opt/home/backup.sh
: not foundackup.sh: line 2:
: not foundackup.sh: line 6:
: not foundackup.sh: line 17:
: not foundackup.sh: line 20:
: not foundackup.sh: line 22: {
/opt/home/backup.sh: line 150: syntax error: unexpected word (expecting "in")
DiskStation>
Titel: Re: Backup Script SABnzbd etc.
Bericht door: raptile op 01 juni 2012, 19:02:30
Als ik jou was zou ik hem opnieuw binnen halen en het opnieuw proberen.
Dit zijn namelijk hele andere foutmeldingen.
Nu opent hij het bestand namelijk wel, want in regel 150 komt ie met de foutmelding:

/opt/home/backup.sh: line 150: syntax error: unexpected word (expecting "in")


en als ik de code er bij pak op pagina 1 staat er op regel 150:
case $1 in

Daarnaast staat er op regel 1 van het script:
#!/bin/sh

en dat komt exact overeen met de output van "which sh".
En als die samen gelijk zijn is het eigenlijk niet mogelijk dat het fout gaat.
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Matr1x op 01 juni 2012, 19:23:34
Citaat van: "raptile"
Als ik jou was zou ik hem opnieuw binnen halen en het opnieuw proberen.
Dit zijn namelijk hele andere foutmeldingen.
Nu opent hij het bestand namelijk wel, want in regel 150 komt ie met de foutmelding:

/opt/home/backup.sh: line 150: syntax error: unexpected word (expecting "in")

Volgens mij zijn we weer terug bij af, want dezelfde fout was er al in dit bericht: viewtopic.php?f=41&t=9424#msg46457 (http://www.synology-forum.nl/viewtopic.php?f=41&t=9424#msg46457)

Ik denk ook dat het copy & paste niet goed gegaan is. Gebruik je wel een goede editor?
Titel: Re: Backup Script SABnzbd etc.
Bericht door: BZwart op 01 juni 2012, 20:54:05
Citaat van: "Matr1x"
Ik denk ook dat het copy & paste niet goed gegaan is. Gebruik je wel een goede editor?
Iedereen ongelooflijk bedankt voor al jullie hulp, zonder de hulp had ik het allang opgegeven.
Goed nieuws het werkt. ik had tot nu toe het script bestand van de site van Martijn gehaald, aangepast met Notepad++. Ik heb nu het script gekopieerd naar een nieuw Notepad++ document. Ik zag toen gelijk dat het nieuwe document iets groter was. En nu werkt alles perfect, geen foutmeldingen meer.

Nogmaals allemaal bedankt voor de voortreffelijke ondersteuning.  :D
Titel: Re: Backup Script SABnzbd etc.
Bericht door: raptile op 01 juni 2012, 21:07:25
Citaat van: "BZwart"
Citaat van: "Matr1x"
Ik denk ook dat het copy & paste niet goed gegaan is. Gebruik je wel een goede editor?
Iedereen ongelooflijk bedankt voor al jullie hulp, zonder de hulp had ik het allang opgegeven.
Goed nieuws het werkt. ik had tot nu toe het script bestand van de site van Martijn gehaald, aangepast met Notepad++. Ik heb nu het script gekopieerd naar een nieuw Notepad++ document. Ik zag toen gelijk dat het nieuwe document iets groter was. En nu werkt alles perfect, geen foutmeldingen meer.

Nogmaals allemaal bedankt voor de voortreffelijke ondersteuning.  :D

Eindelijk! :)

En geen dank haha
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Matr1x op 02 juni 2012, 00:26:10
Citaat van: "raptile"
Eindelijk! :)

En geen dank haha

En nu de volgende uitdaging: het script van raptile werkend krijgen: viewtopic.php?f=48&t=9338 (http://www.synology-forum.nl/viewtopic.php?f=48&t=9338) :wink:
Titel: Re: Backup Script SABnzbd etc.
Bericht door: raptile op 02 juni 2012, 03:00:39
Dat is echt niet moeilijk :)
Komt bijna op hetzelfde neer..
Je geeft aan welke bestanden je geconfigureerd moet hebben en waar ze staan.
Degene die je niet wilt hebben kun je er uit halen.

Boven in defineer je waar de bestanden staan waarvan je een backup wilt hebben en waar de backup naartoe gebackupped moeten worden.
Bijvoorbeeld:

BACKUP_CONTAINER=/volume1/Packages
DEST=/volume1/Packages/latestBackup
OLD_BACKUPS=/volume1/Packages/oldBackups
export ADMIN=admin@domein.nl

Wat wil je backuppen (hier defineer je de variabelen NZBGET_CONF en NZBGET_SETTINGS en waar die bestanden staan)
#NZBGET
NZBGET_CONF=/volume1/@appstore/nzbget/var/nzbget.conf
NZBGET_SETTINGS=/volume1/@appstore/nzbget/var/settings.php


en verder op in het script staat:

###### NZBGET ######

if [ $NZBGET_CONF ]; then
echo "find $NZBGET_CONF -type f -print >> $BACKUPFILES/$BACKUPDAY"  >> $LOG_FILE
echo "find $NZBGET_CONF -type f -print >> $BACKUPFILES/$BACKUPDAY"
find $NZBGET_CONF -type f -print >> $BACKUPFILES/$BACKUPDAY
        echo " "  >> $LOG_FILE
        echo " "
fi

if [ $NZBGET_SETTINGS ]; then
echo "find $NZBGET_SETTINGS -type f -print >> $BACKUPFILES/$BACKUPDAY"  >> $LOG_FILE
echo "find $NZBGET_SETTINGS -type f -print >> $BACKUPFILES/$BACKUPDAY"
find $NZBGET_SETTINGS -type f -print >> $BACKUPFILES/$BACKUPDAY
        echo " "  >> $LOG_FILE
        echo " "
fi

(Zoals je ziet komen de opgegeven variabelen hier voor)

De rest is allemaal extra code voor controles en mailfuncties e.d. maar verder niets bijzonders.

De code is inmiddels wel al iets aangepast en opgevuld.

Misschien moet ik de code eens iets opschonen en wat netter her indelen maar het valt allemaal wel mee hoor :)

En vragen stellen kan altijd als je er niet uit komt.
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Martijn85 op 20 juni 2012, 10:27:51
Een kleine update gemaakt, ik heb 2 pakketten toegevoegd:

- Maraschino
- Subliminal
Titel: Re: Backup Script SABnzbd etc.
Bericht door: Martijn85 op 30 augustus 2012, 13:27:41
Weer een kleine update gemaakt. Nu ook aanwezig:

- OSCam
- Tvheadend
- SABnzbd certificaat
- ZNC certificaat