天天看點

TASKCTL5.0日志亂碼解決方案

       從大學畢業到現在,做了不少銀行外包項目,資料類的項目基本都用到taskctl排程産品,一直習以為然,覺得排程産品都應該是這樣的,是以也沒覺得怎樣,直到後來有兩個外包項目沒用taskctl排程工具,要接入他們已有的排程體系,瞬間就有點懵逼了,後來進一步了解了下目前銀行的排程業,大多都是慘不忍賭,各種方式的都有,銀行的運維人員也是比較辛苦,很多項目傳遞時都用不同的,有的要人工去調用,有的是用crontab封裝shell腳本,有的是字元界面,有的是web界面等等,想想如果銀行所有的系統都用taskctl,那的把運維美死。taskctl這款産品确實很優秀,但是還是有值得改進的地方,比如任務日志字元集不是GBK時,會有亂碼問題,要解決需要使用者修改插件(手動挂載轉碼作業,或者修改作業的字元集),但是都不夠簡單。終于taskctl5.0版本解決了這個問題,下面是我在他們官網論壇看到的文章 http://www.taskctl.com/forum/detail_89.html,這裡轉載分享給大家。

    舉例,假如我在 A伺服器上部署了排程,在B服務上部署了代理,現在我要執行B伺服器上的job是kettle類型的作業,字元集是UTF-8的。正常情況我配置好作業後,排程作業,日志中的中文不能正常顯示,現在我們需要做的很簡單,在B服務安裝代理的使用者下的$TASDKCTLDIR/conf/agtencode.cfg中添加作業一行 kettle UTF-8即可解決日志亂碼的問題。

注意這裡的在B服務上的配置檔案中添加這一行,如果C伺服器作業也有kettle作業,也是UTF-8字元集的,那麼也是需要配置的,雖說可能麻煩了點,但是如果C服務上的kettle作業不是UTF-8字元集的話,那麼這種針對機器而言的配置還是不錯的。還有就是,有的小夥伴修改了插件,在插件有又添加了GBK的中文輸出,那麼這樣就是有問題的,會出現有插件中提示的中文正常,但是真正作業的日志還是亂碼,是以插件最好是不要有中文。