file scp ed eliminazione dei file nella directory remota [chiuso]


18

Sono un nipote unix, quindi per favore sii paziente :-)

Ho uno script che scansiona un mucchio di file su un altro server.

Supponiamo che siano z1.foo, z2.foo ecc. Quello che voglio fare è scpare i file ed eliminare i file più vecchi di 5 giorni nel server di destinazione.

Come posso eliminare in modo sicuro i file dalla destinazione?

Grazie.


"sovrascrivi i file nella destinazione"? Se scp i file che già esistono nella directory remota verranno sovrascritti automaticamente
Aki,

è una buona idea, eliminare i file con uno script shell localmente. Significa che stai SCPing i file ogni volta che vuoi. ma esiste uno script di shell che viene eseguito su base giornaliera per rimuovere i file in una determinata cartella, in cui si conserva files.command sarà qualcosa del tipo:find /path/to/files* -mtime +5 -exec rm {} \;
Zareh Kasparian,

Risposte:


21

Per rimuovere i file in modo non interattivo:

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

1
qual è il nome host? è servername@ipaddress:path/to/dir/?
Hattrick

1
hostname è giusto user:password@ipaddresso user:password@dnsnameoppure puoi omettere la password se non necessario. L'ho appena provato root@somednsnamee funziona benissimo. La path/to/dirparte che ho inserito nel comando rm, come percorso assoluto, per assicurarmi che sia corretta.
AsGoodAsIt Ottiene l'

6

È possibile eseguire entrambe le attività con lo stesso comando utilizzando il --deleteflag to 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

L' --deleteopzione rimuove i file dalla directory di destinazione che non esistono sul sorgente. Esistono alcune opzioni su quando i file vengono eliminati e su come gestire i file esclusi.

> 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

La pagina man contiene anche questo avviso:

Questa opzione può essere pericolosa se utilizzata in modo errato! È una buona idea eseguire prima utilizzando --dry-run option( -n) per vedere quali file verranno eliminati per assicurarsi che i file importanti non siano elencati.


2

Se desideri impostare il nome utente e il numero di porta, puoi effettuare le seguenti operazioni:

ssh root@203.0.113.123 -p22 "rm -rf /home/amzad/test.php"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.