dedlfix: PHP-Script im Cronjob

Beitrag lesen

Hi!

admin ist der Benutzer zum Verwaltungspanel von Plesk, root der für das Parallels Power Panel, in dem ich Zugriff auf sämtliche Servereinstellungen habe, ansonsten habe ich in Plesk nur noch den FTP user (lukas), aber das geht auch nicht:
[root@s15430844 ~]# crontab -u lukas -e
no crontab for lukas - using an empty one

Dann schau doch jetzt bitte mal nach, wem außer root Verzeichnisse und Dateien in deinem Projektverzeichnis /var/www/vhosts/... gehören.

exec() stellt die Ausgabe inklusive der darin enthaltenen Fehlermeldungen zur Verfügung. Die letzte Zeile davon ist das Funktionsergebnis, die komplette Ausgabe bekommt man über den zweiten Funktionsparameter zu sehen. Was steht dort drin?

Was it der zwie Funkionspramter?
»»string exec ( string $command [, array &$output [, int &$return_var ]] )
Vielleicht $return_var?

Nee, das ist der dritte. exec('command', $output); und anschließend print_r($output) wäre zielführend. $returnvar ist vom Typ int, da passt wohl eher kein Ausgabetext rein.

Dein PHP-Script erzeugt vermutlich nur eine Ausgabe mit Whitespace, vielleicht ein Zeilenumbruch nach dem schließenden ?>. Wenn nach dem PHP-Code in einer Datei nichts mehr kommt, kann man das ?> ganz weglassen. Dann können sich dahinter auch keine Whitespaces unbemerkt ansammeln.
Sicher? Also ich hab nach ?> nix gefunden, außerdem beende ich die Funktion mit exit(); ,  aber auch wenn ich das weglasse bekomme ich die Email.

Dann weiß ich grad auch nciht, was es ist.

Darf man ?> überhaupt weglassen? Eigentlich nicht, oder?

Natürlich darf man das weglassen, wenn es am Ende der Datei steht. Es wäre sehr kleinlich von PHP, darauf zu bestehen, wenn durch das Dateiende der Codebereich sowieso endet.

$timestamp=time();
$datum = date("Y.m.d",$timestamp);
$uhrzeit = date("H:i:s",$timestamp);

Wenn du date() keinen zweiten Parameter übergibst, wird die aktuelle Zeit genommen.

$jetzt=$datum.'-'.$uhrzeit;

Außerdem kannst du mit date() auch gleich den kompletten String erzeugen lassen: $jetzt = date("Y.m.d-H:i:s");

exec( "mysqldump --user=$dumpuser --password=$dumppass --add-drop-table $dumpbase >"" . $pfad.$dumpbase . " - " . $jetzt . ".sql"");

Und da nun noch die Ausgabe in Empfang nehmen und anzeigen ...

Lo!