scp dosyaları ve uzak dizindeki dosyaları sil [kapalı]


18

Ben bir unix çaylak, bu yüzden lütfen sabırlı olun :-)

Bir grup dosyayı başka bir sunucuya scps bir komut dosyası var.

Varsayalım z1.foo, z2.foo vb. Ne yapmak istiyorum scp dosyaları ve hedef sunucuda 5 günden daha eski dosyaları silmek.

Dosyaları hedeften nasıl güvenli bir şekilde silebilirim?

Teşekkürler.


msgstr "hedefteki dosyaların üzerine yaz"? Zaten uzak dizinde bulunan dosyaları scp yaparsanız, otomatik olarak üzerine yazılır
Aki

iyi bir fikir, yerel olarak bir kabuk betiği ile dosyaları silmek için. istediğiniz zaman SCPing dosyaları olduğunuza dair. ancak belirli bir klasör altındaki dosyaları kaldırmak için günlük olarak çalışan kabuk komut dosyası vardır, burada files.command tutmak gibi bir şey olacaktır:find /path/to/files* -mtime +5 -exec rm {} \;
Zareh Kasparian

Yanıtlar:


21

Etkileşimli olmayan dosyaları kaldırmak için:

ssh hostname "rm -f z100.foo z200.foo"

1
hostname nedir? değil servername@ipaddress:path/to/dir/mi?
HattrickNZ

1
hostname sadece user:password@ipaddressya user:password@dnsnameda gerekmiyorsa şifreyi atlayabilirsiniz. Sadece denedim root@somednsnameve iyi çalışıyor. path/to/dirBen mutlak bir yol olarak, rm komutu koymak parçası, doğru olduğundan emin olmak için.
AsGoodAsIt

6

Sen kullanarak aynı komuta hem görevleri yerine olabilir --deletebayrağı rsync.

> ls -1 localdir/
a.foo
b.foo

> ssh remote-host "ls -1 remotedir/"
c.foo

> rsync -a --delete localdir/ remote-host:remotedir/

> ssh remote-host "ls -1 remotedir/"
a.foo
b.foo

--deleteSeçenek kaynağı var olmayan hedef dizinden dosyaları siler. Dosyaların ne zaman silineceği ve hariç tutulan dosyaların nasıl işleneceği hakkında bazı seçenekler vardır.

> man rysnc
...
--delete                delete extraneous files from dest dirs
--delete-before         receiver deletes before transfer (default)
--delete-during         receiver deletes during xfer, not before
--delete-after          receiver deletes after transfer, not before
--delete-excluded       also delete excluded files from dest dirs

Kılavuz sayfası ayrıca şu uyarıyı içerir:

Bu seçenek yanlış kullanılırsa tehlikeli olabilir! Önemli dosyaların listelenmediğinden emin olmak için hangi dosyaların silineceğini görmek için önce --dry-run option( -n) 'yi kullanarak çalıştırmak çok iyi bir fikirdir .


2

Kullanıcı adı ve bağlantı noktası numarası ayarlamak isterseniz aşağıdakileri yapabilirsiniz:

ssh root@203.0.113.123 -p22 "rm -rf /home/amzad/test.php"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.