原创 shell整除取餘

date取得分鐘數$(()) 運算#execute every 5 minutesa=`date +%M`b=$(( $a % 5 ))if [ $b = 0 ]then        echo "execute it"else      

原创 Elasticsearch-jdbc批量同步mysql數據失敗

最近公司系統中全模糊查詢很多,數據量又大,多表連接查詢時會很影響性能。於是考慮使用搜索引擎來做全模糊查詢,思路:mysql數據庫數據同步至ES類型,同步採用全量同步+定時增量方式,應用直接從ES中去查詢想要的結果。通過一番查找,決定使用el

原创 mha報錯

mha安裝之後一直正常運行,中間也有出現過切換的情況,不過都正常進行,後有其他dba在mha自動切換後做過一些操作,後來我再查看狀態,發現監控沒有在運行,於是手工啓動,結果就報以下錯誤:Mon Nov 20 17:15:11 2017 - 

原创 Mongodb OPS Manager安裝使用

mongo ops manager默認爲企業版本所帶監控管理工具,若你使用的爲社區版本,想使用ops manager,則需要自己單獨手工安裝。下載mongo ops manager包(url:https://www.mongodb.com/

原创 mongo分片丟失分片索引

mongo分片備份後刪除分片並重建分片索引,結果常遇到以下情況:shard01上的集合創建了分片索引,而shard02上卻沒有創建分片索引,導致chunk只分布在shard01分片上。具體報錯信息:"errmsg" : "aborting

原创 mongo聚合函數count問題

在使用一個時間字段做範圍查詢count()行數時,發現一個問題:集合總doc數:mongo>db.log.find().count();90370113查詢小於ISODate("2016-10-10T08:00:00.358Z")的doc有

原创 Elasticsearch集羣40億級優化

目前架構:n臺filebeat客戶端來將每臺應用上的日誌傳到kafka,3臺kafka做集羣用於日誌隊列,四臺ES做集羣,前兩臺存放近兩天熱數據日誌,後兩臺存放兩天前的歷史日誌,數據保存一個月,目前總數據量44億,大小爲6T。logstas

原创 wget任務被kill之後tmp目錄空間一直不釋放

在一次下載一個200多G的大文件時,使用如下方式進行下載,已經下載了180Gwget -c xxxxx.tar.gz   -O xxxx.tar.gz因爲當時機器上做的操作很多,機器有點卡,於是就手工kill掉這個任務,等空閒時候再手工下載

原创 python判斷數據庫返回結果是否爲空

python判斷mongo查詢結果是否爲空,可以使用cursor.count()來判斷,爲0則查詢返回結果爲空。conn = pymongo.MongoClient(host="192.168.3.6",port=27017)db = co

原创 bash中獲取其他時間的日期

 linux中用shell獲取昨天、明天或多天前的日期:在Linux中對man date -d 參數說的比較模糊,以下舉例進一步說明:# -d, --date=STRING display time described by STRING,

原创 shell讀取用戶輸入

當需要在執行過程中獲得執行腳本人員的輸入,使用read命令(1)基本讀取read命令接受標準輸入或其他文件描述符輸入。讀入後將數據放入一個標準變量中。-p 允許在read命令行中直接指定一個提示。可以指定多個變量,也可以不指定(將放置在RE

原创 mysql 5.6無法啓用異步IO

mysql5.6安裝之後無法啓用參數 innodb_use_native_aio,error文件中也沒有相應錯誤。mysql> show variables like 'innodb_use_native_aio';+-----------

原创 mongo用戶與權限

開啓MongoDB服務時不添加任何參數時,默認是沒有權限驗證的,登錄的用戶可以對數據庫任意操作而且可以遠程訪問數據庫!在剛安裝完畢的時候MongoDB都默認有一個admin數據庫(3.0以前,3.0以後默認沒有這個admin數據庫,需自己創

原创 用subprocess的時候,怎麼獲取stdout和stderr

用subprocess的時候,怎麼獲取stdout和stderr?下面是一種方式import subprocess p = subprocess.Popen(['tail','-10','/tmp/hosts.txt'],stdin=sub