有人可能会就此提出建议。
我想从运行的 mysql 查询中获取输出文件:
$code $IP
123456 192.168.26.176
10051 192.168.20.80
234567 192.168.26.178
并在命令中运行它:
rsync -rvp *.$code.extension root@$IP:/path/of/dest
我正在尝试这个:
while read -r line ; do echo
"$SOURCE_TRANSMIT_DIR"*."$code".class.json
"$DEST_HOST"@"$IP":"$DEST_TRANSMIT_DIR" ; done
我得到的输出是这样的:
/opt/file/outgoing/*.123456
10051
234567.class.json [email protected]
192.168.20.80
192.168.26.178:/opt/file/incoming/
我希望它在单独的 rsync 命令中像这样读取:
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
希望这能更好地解释,对不起可怕的解释。
如果您通过以下命令运行 mysql-query 的输出,它将为您提供所需的输出。您可以使用此输出进行评估,例如将其通过管道传输到文件中并将该文件作为 shell 脚本执行。
以下是该命令的详细信息:
并且正则表达式的内容解释了:
我看不到您的 mysql 查询的结果,但您可以执行它并使用 awk 解析以打印您想要的内容(请参阅 mysql 选项以避免打印元组和标题 -raw 或类似的东西)
您可以将其通过管道传输到 sh 或 bash(命令 |sh)以执行 rsync :)
对我来说似乎是最简单的方法。