Sanırım bu, sorulan şeyi yapmalı.
phpseclib dosyasını içe aktarmak için besteci kullandım, bu tam olarak test ettiğim kod değil, diğer cevaplarda sözdizimi doğru olmalıdır.
<?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/');
Notlar:
- dizinlerinin herhangi biri yoksa, bu başarısız olur. errormsg dosyasını almak için
echo $sftp->exec(...
yapın./Iç/jn/xml/Ben
- kullanabilirdin /jn/xml.bak/ dosyaları taşıma tavsiye ediyorum 'Net/ssh2' sınıfı/jn/xml/yedekleme çünkü
- bir uyarı alacak sadece bir mv yaptığınızdan ve herhangi bir dosya aktarmadığınızdan. Aslında, exec SSH2 sınıfından bir işlevdir ve SFTP SSH2'den miras alır.
Bu, yerel bir dizin oluşturur ve uzak sftp'deki tüm dosyaları, oluşturulan tye dizinindeki yerel makineye indirir. Jan Neuman'ın istediği değil. –
@LawrenceGandhar - Bir yazım hatası olduğu anlaşılıyor. Bir dizin oluşturdum ancak yeni oluşturulan dizine yazmıyordum. Kodu güncelledim. Ancak, bariz yazım hataları durumunda düzenlemek ve düzeltmekten ziyade reddetmekten çekinmeyin! – neubert
Diff: http://stackoverflow.com/posts/36558913/revisions – neubert