如何使用 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)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END