Ich denke, das sollte tun, was gefragt wurde.
Ich verwendete Composer, um phpseclib zu importieren, also ist dies nicht genau der Code, den ich getestet habe, aber von den anderen Antworten sollte die Syntax korrekt sein.
<?php
include('Net/SFTP.php');
// connection
$sftp = new Net_SFTP('website.com');
if (!$sftp->login('user', 'pass')) {
exit('bad login');
}
// Use sftp to make an mv
$sftp->exec('mv /jn/xml/* /jn/xml/backup/');
Hinweise:
- , wenn eine der Verzeichnisse nicht existieren, wird dies fehlschlagen. tun
echo $sftp->exec(...
, um den errormsg zu bekommen.
- erhalten Sie eine Warnung erhalten, weil/jn/xml/backup/innen/jn/xml/ich die Dateien bewegen würde raten
- Sie 'Net/SSH2' könnte /jn/xml.bak/ Klasse , da du nur ein mv machst und keine Dateien übertragst. Tatsächlich ist die exec eine Funktion der SSH2-Klasse, und SFTP erbt sie von SSH2.
Dies erstellt ein lokales Verzeichnis und downloadet alle Dateien in der Remote-SFTP auf den lokalen Computer, in diesem Verzeichnis erstellt. Es ist nicht, was Jan Neuman gefragt hat. –
@LawrenceGandhar - Sieht so aus, als gäbe es einen Tippfehler. Ich habe ein Verzeichnis erstellt, aber nicht in das neu erstellte Verzeichnis geschrieben. Ich habe den Code aktualisiert. Aber zögern Sie nicht, im Fall von offensichtlichen Tippfehlern, anstatt tatsächlich zu bearbeiten und zu korrigieren! – neubert
Vergleichen: http://stackoverflow.com/posts/36558913/revisions – neubert