Ziel war eine Dateisicherung mit tar. Das Programm mit Pfad '/bin/tar' lässt sich in der SSH-Login-Shell aufrufen. Ein cron-Aufruf, der über CGI-Skripte gelöst wird, erzeugte kein Ergebnis. Mit Shell-Programmierung habe ich wenig Erfahrung und habe deswegen für die Fehlersuche sehr lange herumprobiert – der Fehler sitzt hier normalerweise vorm Bildschirm. Letztlich denke ich, dass tar zu den gesperrten Befehlen gehört (s. a. dieser FAQ-Beitrag).

Das (nicht funktionierende) Skript war recht simpel, wegen der Variablen habe ich nachher nochmal Schritt für Schritt Klartext eingefügt – ohne Ergebnis:

#!/bin/bash
#backup-details
#
# sichert alle Domains und Subdomains in
# separaten Archiven
#
targetDir=/www/htdocs/ACCOUNT/backup
srcDir=/www/htdocs/ACCOUNT
mycmd="/bin/tar -cpzf"
extension=`date '%Y%m%d'`.tar.gz
 
$mycmd $targetDir/BASENAME.$extension $srcDir/SUBDIR_1/
$mycmd $targetDir/BASENAME.SUBDIR_2.$extension $srcDir/SUBDIR_2/
$mycmd $targetDir/BASENAME.SUBDIR_3.$extension $srcDir/SUBDIR_3/
$mycmd $targetDir/BASENAME.SUBDIR_4.$extension $srcDir/SUBDIR_4/
 

Dass tar in CGIs deaktiviert ist habe ich erst gemerkt, als

which tar

das Ergebnis lieferte:

/bin/tar

und im CGI ein testweise eingefügtes

/bin/tar <irgendeinebefehlsoption>

keine Ausgabe erzeugt hat, alle anderen Befehle aber normal durchliefen. Gibt es keine Liste der für CGI gesperrten Befehle?

Kommentare 

 
-1 # Thomas Ziegler 2011-10-23 16:24
Damit ein Skript keinen

Zitat:
500 Internal Server Error


ausspuckt muss für das cgi-bin-Verzeichnis gelten

  • es ist nur für den Besitzer beschreibbar
  • es muss in der obersten Ebene der Domain liegen
Antworten | Antworten mit Zitat | Zitieren
 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Software - Web