如何讓指令碼在任意地方可執行

發表於2022-03-01

大家好,我是咔咔 不期速成,日拱一卒

在上一期文章《闖禍了,生成環境執行了DDL操作》中,為了防止線上DDL造成的SQL阻塞使用了第三方外掛pt-online-schema-change

在使用這個外掛修改表資料時需要加入很多引數,例如資料庫名、表名、資料庫地址、資料庫密碼等引數。

然後將外掛需要執行一系列引數優化為一個指令碼,那麼問題來了,如何讓這個指令碼在任意地方都可以執行呢?

在上期文章咔咔把執行的指令碼放置到了如下位置,接下來看看都有哪些方法可以讓這個指令碼可以在任意地方都可以執行。

死磕MySQL系列
死磕MySQL系列

一、將指令碼路徑新增到.bashrc檔案中

bash執行起來首先後載入.bahsrc檔案,so可以直接把需要執行的指令碼路徑新增到此檔案中

那你得知道.bashrc檔案在哪吧!位置就在當前使用者的根目錄,執行cd ~後即可看到此檔案

接著在這個檔案中把你的指令碼路徑放進去即可,新增最後一行程式碼export PATH="/script:$PATH"

最後,再使用source命令使我們的修改生效

source ~/.bashrc

來試試直接在根目錄執行給evt_sms表新增一個bash欄位,看到下圖就知道我們的配置成功了

二、將指令碼路徑新增到.profile檔案中

檔案路徑在etc/profile

在檔案末尾加上export PATH="$PATH:$HOME/script"即可

這種方式需要退出終端才會生效

三、使用軟鏈的方式

把寫好的指令碼複製到/usr/local/bin下

新增一個軟連線即可ln -s /usr/local/bin/pt.sh /usr/bin/pt.sh

然後就可以在任意地方執行pt.sh這個指令碼了

四、總結

本文簡單的跟大家聊了兩種讓你的指令碼在任何地方都可以執行,會使用其中一種就行了。

但實現的方式都要有了解,因為每個人喜歡處理的方式不一致,當你遇到這種指令碼時你要知道他是在哪裡配置的,然後你才可以修改它

五、推薦閱讀

開啟order by的大門,一探究竟《死磕MySQL系列 十二》

重重封鎖,讓你一條資料都拿不到《死磕MySQL系列 十三》

闖禍了,生成環境執行了DDL操作《死磕MySQL系列 十四》

聊聊MySQL的加鎖規則《死磕MySQL系列 十五》

堅持學習、堅持寫作、堅持分享是咔咔從業以來所秉持的信念。願文章在偌大的網際網路上能給你帶來一點幫助,我是咔咔,下期見。

相關文章