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
Zitat:
ausspuckt muss für das cgi-bin-Verzeichnis gelten