
Estou scp
transferindo alguns arquivos de um host remoto em um script. Quero saber se alguma coisa falha, geralmente devido a problemas de permissão. Os arquivos copiados pertencem a um usuário diferente e às vezes o script para alterar as permissões do arquivo não é executado. Um dos conjuntos de arquivos que estão sendo copiados é um glob que pode estar vazio, então agora o script contém uma linha semelhante a esta scp -p remote:*.pattern curdir
. Para todos os outros comandos de cópia, simplesmente verifico o código de retorno, mas isso não funciona aqui, pois é possível que o globo esteja simplesmente vazio. Qual é a melhor maneira de verificar se o scp possui código de retorno diferente de zero apenas porque não há arquivos correspondentes ao glob, em oposição a outros problemas, como permissões incorretas no diretório pai ou nos próprios arquivos?
Responder1
Usar ssh para exibir uma lista de arquivos no host remoto é uma possível solução:
ssh remote "find ./ -type f -name '*.pattern'"
Você pode então comparar a lista local de arquivos com a remota, usando, diff
por exemplo, ou wc -l
para contagem de linhas.