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

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 »
  • Beste antwoord
  • 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: 275
    • -Ontvangen: 774
    • Berichten: 5.098
    Re: Backup Script SABnzbd etc.
    « Reactie #2 Gepost op: 29 mei 2012, 18:02:57 »
  • Beste antwoord
  • 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 »
  • Beste antwoord
  • 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 »
  • Beste antwoord
  • 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: 275
    • -Ontvangen: 774
    • Berichten: 5.098
    Re: Backup Script SABnzbd etc.
    « Reactie #5 Gepost op: 30 mei 2012, 10:59:58 »
  • Beste antwoord
  • 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 »
  • Beste antwoord
  • 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 »
  • Beste antwoord
  • 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: 275
    • -Ontvangen: 774
    • Berichten: 5.098
    Re: Backup Script SABnzbd etc.
    « Reactie #8 Gepost op: 30 mei 2012, 11:51:38 »
  • Beste antwoord
  • 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 »
  • Beste antwoord
  • 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 »
  • Beste antwoord
  • 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 »
  • Beste antwoord
  • 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 »
  • Beste antwoord
  • 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 »
  • Beste antwoord
  • 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 »
  • Beste antwoord
  • 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?


     

    Iphone foto's automatisch laten backup naar NAS

    Gestart door TwofaceBoard iOS Apps (iPhone, iPad en iPod)

    Reacties: 16
    Gelezen: 16286
    Laatste bericht 14 januari 2020, 13:45:53
    door ufosyno
    macbook pro langzame overdrachtssnelheden naar DS218 tijdens backup en syncen

    Gestart door starboyuniverseBoard Cloud Station & Drive

    Reacties: 4
    Gelezen: 1024
    Laatste bericht 30 april 2020, 16:24:07
    door starboyuniverse
    Ransomware risico verkleinen met USB backup

    Gestart door JSSLBoard Data replicator & overige backupsoftware

    Reacties: 1
    Gelezen: 791
    Laatste bericht 11 oktober 2020, 19:20:12
    door André PE1PQX
    Hyper Backup versiebackup kapot?

    Gestart door SylvesterBoard Data replicator & overige backupsoftware

    Reacties: 8
    Gelezen: 2004
    Laatste bericht 14 februari 2021, 20:06:05
    door Sylvester
    C2 Password Security toegevoegd aan C2 Backup en Opslag voor particulieren.

    Gestart door m4v3r1ckBoard Data replicator & overige backupsoftware

    Reacties: 2
    Gelezen: 1233
    Laatste bericht 15 augustus 2021, 21:34:14
    door m4v3r1ck