Alguém poderia talvez dar seus conselhos sobre isso.
Estou querendo pegar um arquivo de saída de uma consulta mysql executada:
$code $IP
123456 192.168.26.176
10051 192.168.20.80
234567 192.168.26.178
e execute-o no comando:
rsync -rvp *.$code.extension root@$IP:/path/of/dest
estou tentando isso:
while read -r line ; do echo
"$SOURCE_TRANSMIT_DIR"*."$code".class.json
"$DEST_HOST"@"$IP":"$DEST_TRANSMIT_DIR" ; done
A saída que recebo é esta:
/opt/file/outgoing/*.123456
10051
234567.class.json [email protected]
192.168.20.80
192.168.26.178:/opt/file/incoming/
Onde eu gostaria que fosse lido assim em comandos rsync separados:
rsync -rvp *.123456.extension [email protected]:/path/of/dest
rsync -rvp *.234567.extension [email protected]:/path/of/dest
rsync -rvp *.345678.extension [email protected]:/path/of/dest
Espero que isso explique melhor, desculpe pela terrível explicação.
Se você executar a saída de sua consulta mysql por meio dos comandos a seguir, ela fornecerá a saída desejada. Você pode usar essa saída para ser avaliada, por exemplo, canalizá-la para um arquivo e executar esse arquivo como um script de shell.
Aqui estão os detalhes do comando:
E o conteúdo do regexp explicou:
Não consigo ver o resultado da sua consulta mysql, mas você pode executá-la e analisar com awk para imprimir exatamente o que deseja (consulte a opção mysql para evitar a impressão de tuplas e títulos -raw ou algo assim)
Você pode canalizá-lo para sh ou bash então (comandos |sh) para executar o rsync :)
Parece ser a maneira mais fácil de fazer isso para mim.