Subversion Script

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

boomchickawah

Benutzer
Registriert
16. Sep. 2013
Beiträge
1
Reaktionspunkte
0
Punkte
1
Hallo,

ich versuche momentan folgendes Script per Crontab als root zum laufen zu bringen.

Führe ich das Script per Konsole aus, klappt es wunderbar. Läuft es jedoch über Crontab kriege ich als Ausgabe das er den Befehl "svnadmin" nicht finden kann. Das Script habe ich unter dem Verzeichnis "/volume1/homes/admin/" liegen.

Woran kann das liegen?


Rich (BBCode):
#!/bin/sh
# Record todays date
# --------------------
bakdate=$(date +%Y%m%d%H%M)
echo "--------------------------------"
echo "Running SVN backup $bakdate"
echo "--------------------------------\n"
 
# From where to backup repos?
# ---------------------------
svnrepos="/volume1/svn"
echo "\nGoing to backup all SVN repos located at: $svnrepos \n"
 
# Where to save the dump?
# ------------------------
bakdest="/volume1/backup/svn"
 
 
# _________NO-COFIG-REQUIRED-BELOW-THIS-LINE___________
 
# First go to SVN repo folder
cd $svnrepos
 
 
# Just make sure we have write access to backup-folder
if [ -d "$bakdest" ] && [ -w "$bakdest" ] ; then
  # Now $repo has folder names = project names
  for repo in *; do
    # do svn dump for each project
    echo "Taking backup/svndump for: $repo"
    echo "Executing : svnadmin dump $repo > 
$bakdest/$repo-$bakdate.svn.dump \n"
    # Now finally execute the backup
    svnadmin dump $repo > $bakdest/$repo.svn.dump
    # You can go an extra mile by applying tar-gz compression to svn-dumps
  done
else
  echo "Unable to continue SVN backup process."
  echo "$bakdest is *NOT* a directory or you do not have write 
permission."
fi
 
 
# End of backup script
echo "\n\n================================="
echo " - Backup Complete, THANK YOU :-]"
 
Führe ich das Script per Konsole aus, klappt es wunderbar. Läuft es jedoch über Crontab kriege ich als Ausgabe das er den Befehl "svnadmin" nicht finden kann.
Wenn man Skripte per cronjob ausführen will, sollten darin immer vollständige Pfade angeben werden, d.h. nicht nur 'svnadmin' sondern z.B. '/opt/bin/svnadmin' (den korrekten Pfad kann man mit 'which svnadmin' abfragen).
 
Guter Hinweis - oder die Pfad-Einstellung aus /etc/profile mit ins Script übernehmen.
 
... oder die Pfad-Einstellung aus /etc/profile mit ins Script übernehmen.
Das dürfte meist nicht funktionieren.

Wenn man nicht die vollständigen Pfade im Script angeben will muss sichergestellt werden, dass die Umgebungsvariable PATH die gleichen Werte enthält, die in der Umgebungsvariablen des User vorhanden sind, der das Script manuell im Terminal startet (echo $PATH). Selbstverständlich ist es möglich diese Variable im Script zu setzen.
 
Da die meisten den Pfad in /etc/profile für alle setzen und in ~/.profile z.B. wegen ipkg auskommentieren und nicht verändern, dürfte das aufs selbe hinauslaufen.
Tatsache ist, dass jedes Script den vom ihm benötigten Pfad selbst setzen sollte.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat