pliki scp i usuń pliki ze zdalnego katalogu [zamknięte]

18

Jestem uniksowym noobem, więc proszę o cierpliwość :-)

Mam skrypt, który przesyła wiązkę plików na inny serwer.

Załóżmy, że są to pliki z1.foo, z2.foo itp. Chcę skanować pliki i usuwać pliki starsze niż 5 dni na serwerze docelowym.

Jak bezpiecznie usunąć pliki z miejsca docelowego?

Dzięki.

Kapsh
źródło
„nadpisać pliki w miejscu docelowym”? Jeśli scp pliki, które już istnieją w zdalnym katalogu, zostaną automatycznie nadpisane
Aki
dobrym pomysłem jest usuwanie plików za pomocą skryptu powłoki lokalnie. oznacza to, że jesteś plikami SCPing, kiedy tylko chcesz. ale istnieje skrypt powłoki, który jest uruchamiany codziennie, aby usunąć pliki z określonego folderu, w którym przechowujesz pliki. komenda będzie wyglądać tak:find /path/to/files* -mtime +5 -exec rm {} \;
Zareh Kasparian

Odpowiedzi:

21

Aby usunąć pliki nieinteraktywnie:

ssh hostname "rm -f z100.foo z200.foo"
Warner
źródło
1
jaka jest nazwa hosta? czy to servername@ipaddress:path/to/dir/jest
HattrickNZ
1
nazwa hosta to po prostu user:password@ipaddresslub user:password@dnsnamemożesz pominąć hasło, jeśli nie jest potrzebne. Właśnie go wypróbowałem root@somednsnamei działa dobrze. path/to/dirCzęść umieścić w polecenia rm, jako ścieżka bezwzględna, aby upewnić się, że jest poprawne.
AsGoodAsItGets
6

Możesz wykonać oba zadania w tym samym poleceniu, używając --deleteflagi do 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

--deleteOpcja usuwa pliki z katalogu docelowego, że nie istnieją źródła. Istnieje kilka opcji dotyczących tego, kiedy pliki są usuwane i jak obsługiwać pliki wykluczone.

> 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

Strona podręcznika zawiera również to ostrzeżenie:

Ta opcja może być niebezpieczna, jeśli zostanie użyta nieprawidłowo! Bardzo dobrym pomysłem jest uruchomienie najpierw za pomocą --dry-run option( -n), aby zobaczyć, które pliki zostaną usunięte, aby upewnić się, że ważnych plików nie ma na liście.

Ladadadada
źródło
2

Jeśli chcesz ustawić nazwę użytkownika i numer portu, możesz wykonać następujące czynności:

ssh [email protected] -p22 "rm -rf /home/amzad/test.php"
m82amjad
źródło