如何使用 shell 腳本實(shí)時(shí)打印 SQL 執(zhí)行過程并避免腳本卡死?

如何使用 shell 腳本實(shí)時(shí)打印 SQL 執(zhí)行過程并避免腳本卡死?

如何使用 shell 腳本跑庫(kù),并實(shí)時(shí)打印 sql 執(zhí)行過程?

你在跑庫(kù)腳本中通過以下命令后臺(tái)執(zhí)行 sql 腳本,會(huì)導(dǎo)致腳本卡死,直到 sql 腳本執(zhí)行完畢:

mysql -h$mysqlhost -uroot -p$rootpwd -p$mysqlport -e  "use mysql;source ${basepath}/sql_execute/apphub/apphub_mysql_db_create.sql; source ${basepath}/sql_execute/bam/bam_mysql_db_create.sql; source ${basepath}/sql_execute/bim/bim_mysql_db_create.sql; source ${basepath}/sql_execute/epass/epass_mysql_db_create.sql; use apphub${suffix}; source ${basepath}/sql_execute/apphub/apphub_mysql_table_and_data.sql; use bam${suffix}; source ${basepath}/sql_execute/bam/bam_mysql_table_and_data.sql; use bim${suffix}; source ${basepath}/sql_execute/bim/bim_mysql_table_and_data.sql; use epass${suffix}; source ${basepath}/sql_execute/epass/epass_mysql_table_and_data.sql;" -vvv > ${basepath}/running_sql.log & 

為了實(shí)時(shí)打印 sql 執(zhí)行過程,可以在 mysql 命令后添加 -v 參數(shù)。然而,對(duì)于你這種情況,使用標(biāo)準(zhǔn)輸出連接重定向會(huì)更合適:

mysql -v < ${basepath}/sql_execute/apphub/apphub_mysql_db_create.sql & mysql -v < ${basepath}/sql_execute/bam/bam_mysql_db_create.sql & mysql -v < ${basepath}/sql_execute/bim/bim_mysql_db_create.sql & mysql -v < ${basepath}/sql_execute/epass/epass_mysql_db_create.sql &

這樣,sql 執(zhí)行過程的輸出信息將直接輸出到標(biāo)準(zhǔn)輸出,你可以通過管道或重定向來處理這些輸出信息,實(shí)現(xiàn)實(shí)時(shí)打印的功能。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊7 分享