Auteur Topic: Backup Script SABnzbd etc.  (gelezen 17820 keer)

Dit onderwerp bevat een als beste antwoord gemarkeerd bericht. Klik hier om er direct naartoe te gaan.

Martijn85

  • Gast
Backup Script SABnzbd etc.
« Gepost 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.

- 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.

#!/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

Offline Donny

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 21
  • -Ontvangen: 90
  • Berichten: 371
Re: Backup Script SABnzbd etc.
« Reactie #1 Gepost op: 29 mei 2012, 17:17:16 »
Wat is het verschil tussen jou script en die van raptile?
viewtopic.php?f=48&t=9338
  • Mijn Synology: DS212+
  • HDD's: 2x WD20EARX
Synology DS212+ (4TB - RAID 0)
    AutoSub Bootstrap Bill
    NZBGet
    Sonarr
    Spotweb

Offline Matr1x

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 270
  • -Ontvangen: 771
  • Berichten: 5.090
Re: Backup Script SABnzbd etc.
« Reactie #2 Gepost 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.
  • Mijn Synology: DS224+
  • HDD's: 2x HAT3300-4T
  • Extra's: MR2200ac / RT2600ac

Offline raptile

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 66
  • -Ontvangen: 131
  • Berichten: 1.263
Re: Backup Script SABnzbd etc.
« Reactie #3 Gepost 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

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.
If UNIX isn\'t the solution, you\'ve got the wrong problem...

Is RAID hetzelfde als een backup?

Heeft het antwoord van een gebruiker je geholpen met het oplossen van je probleem?
Geef hem/haar een bedankje door op de bedankt knop te drukken!

Offline BZwart

  • Bedankjes
  • -Gegeven: 108
  • -Ontvangen: 29
  • Berichten: 199
Re: Backup Script SABnzbd etc.
« Reactie #4 Gepost 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" ?

Offline Matr1x

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 270
  • -Ontvangen: 771
  • Berichten: 5.090
Re: Backup Script SABnzbd etc.
« Reactie #5 Gepost 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.
  • Mijn Synology: DS224+
  • HDD's: 2x HAT3300-4T
  • Extra's: MR2200ac / RT2600ac

Martijn85

  • Gast
Re: Backup Script SABnzbd etc.
« Reactie #6 Gepost 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"

Offline BZwart

  • Bedankjes
  • -Gegeven: 108
  • -Ontvangen: 29
  • Berichten: 199
Re: Backup Script SABnzbd etc.
« Reactie #7 Gepost 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?

Offline Matr1x

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 270
  • -Ontvangen: 771
  • Berichten: 5.090
Re: Backup Script SABnzbd etc.
« Reactie #8 Gepost 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
  • Mijn Synology: DS224+
  • HDD's: 2x HAT3300-4T
  • Extra's: MR2200ac / RT2600ac

Martijn85

  • Gast
Re: Backup Script SABnzbd etc.
« Reactie #9 Gepost 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

Martijn85

  • Gast
Re: Backup Script SABnzbd etc.
« Reactie #10 Gepost op: 30 mei 2012, 12:03:20 »
Nog een paar pakketten toegevoegd, zie de begin post voor alle pakketten.

Offline BZwart

  • Bedankjes
  • -Gegeven: 108
  • -Ontvangen: 29
  • Berichten: 199
Re: Backup Script SABnzbd etc.
« Reactie #11 Gepost 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?

Martijn85

  • Gast
Re: Backup Script SABnzbd etc.
« Reactie #12 Gepost 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

Offline BZwart

  • Bedankjes
  • -Gegeven: 108
  • -Ontvangen: 29
  • Berichten: 199
Re: Backup Script SABnzbd etc.
« Reactie #13 Gepost 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.

Martijn85

  • Gast
Re: Backup Script SABnzbd etc.
« Reactie #14 Gepost 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?


 

Mac time machine backup op iSCSI Target of LUN plaatsen?

Gestart door LouBoard NAS hardware vragen

Reacties: 0
Gelezen: 1861
Laatste bericht 05 oktober 2012, 23:11:13
door Lou
DS213 opzetten voor films en backup

Gestart door QuakeFXBoard Data replicator & overige backupsoftware

Reacties: 0
Gelezen: 1570
Laatste bericht 17 januari 2013, 21:39:24
door QuakeFX
Externe backup op USB harddisk

Gestart door MarkgoessensBoard Externe harddisks en Printers

Reacties: 13
Gelezen: 5525
Laatste bericht 25 juni 2014, 14:38:43
door richard79
Backup en Replicatie tussen DS213+ en DS212j lukt maar één kant op.

Gestart door redfoxBoard Data replicator & overige backupsoftware

Reacties: 0
Gelezen: 2172
Laatste bericht 18 augustus 2014, 14:41:07
door redfox
Rsync backup van DS-207+ naar LInux fedora server

Gestart door VerliezerBoard Data replicator & overige backupsoftware

Reacties: 2
Gelezen: 4360
Laatste bericht 09 september 2008, 15:09:49
door wizjos