Synology-Forum.nl
Packages => 3rd party Packages => SABnzbd (usenet) => Topic gestart 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
-
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)
-
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.
-
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.
-
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" ?
-
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.
-
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"
-
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?
-
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
-
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
-
Nog een paar pakketten toegevoegd, zie de begin post voor alle pakketten.
-
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?
-
Wat heb je precies aangepast in het script? Kun je jou script eens posten?
backup.sh: line 150: syntax error: unexpected word (expecting "in")
Lijkt er op dat je "in" hebt verwijdert van deze regel:
case $1 in
-
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.
-
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?
-
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.sh
Nog steeds de zelfde foutmelding
PS, ik heb het script op een andere locatie staan, kan dat het probleem zijn?
/opt/home/backup.sh
-
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:
-
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>
-
Ga eens naar /opt/home en voer het script daar eens uit met:
./backup.sh sabnzbd
wat doet ie dan?
-
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>
-
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?
-
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>
-
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.
-
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>
-
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:
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.
-
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
-
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 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.
-
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.
-
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?
-
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>
-
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.
-
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?
-
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
-
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
-
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:
-
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.
-
Een kleine update gemaakt, ik heb 2 pakketten toegevoegd:
- Maraschino
- Subliminal
-
Weer een kleine update gemaakt. Nu ook aanwezig:
- OSCam
- Tvheadend
- SABnzbd certificaat
- ZNC certificaat