Para remover arquivos de maneira não interativa:
ssh hostname "rm -f z100.foo z200.foo"
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.
Para remover arquivos de maneira não interativa:
ssh hostname "rm -f z100.foo z200.foo"
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.
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"