scp e delete arquivos no diretório remoto [closed]

11

Eu sou um noob unix, por favor, seja paciente: -)

Eu tenho um script que scps um monte de arquivos para outro servidor.

Suponha que eles sejam z1.foo, z2.foo etc. O que eu quero fazer é deletar arquivos com mais de 5 dias no servidor de destino.

Como faço para excluir arquivos com segurança do destino?

Obrigado.

    
por Kapsh 15.07.2010 / 18:01

3 respostas

15

Para remover arquivos de maneira não interativa:

ssh hostname "rm -f z100.foo z200.foo"
    
por 15.07.2010 / 18:06
5

Você pode realizar as duas tarefas no mesmo comando usando o --delete flag para 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

A opção --delete remove arquivos do diretório de destino que não existem na origem. Existem algumas opções sobre quando os arquivos são excluídos e como lidar com arquivos excluídos.

> 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

A página man também contém este aviso:

This option can be dangerous if used incorrectly! It is a very good idea to run first using the --dry-run option (-n) to see what files would be deleted to make sure important files aren't listed.

    
por 25.06.2014 / 19:03
1

Se você quiser definir o nome de usuário e o número da porta:

ssh [email protected] -p22 "rm -rf /home/amzad/test.php"

    
por 24.06.2014 / 11:14

Tags