2019年12月5日 星期四
2019年12月1日 星期日
nagios check
Add nagios check
- files
- /etc/nagios/nrpe.cfg
- /usr/lib64/nagios/plugins/*
 
- package
- nrpe
 
- service
- nrpe
 
2019年11月27日 星期三
2019年11月11日 星期一
20191112
關於攀岩的小筆記…
虛榮者的特性:
- 不常攀岩
- 一但攀岩必打卡
- 會拍天花板照片打卡(通常自己過不去)
- 在上述圖片下加上slogan,例:「好久沒攀了」、「沒有過不了的牆」,使人誤以為自己能爬
- 下方常有虛榮小夥伴們吹捧「好厲害呀」、「超人~」、「太強了」之類的
- 對於錯誤的稱讚通常不加以否認
以上攀岩替代為溯溪、爬山似乎也行得通
2019年10月7日 星期一
FE
前後端分離小心得
- 格守紀律,決定好的事就不該輕易改變
- 能不手刻就千萬別手刻
- 使用如Datatable這類前端庫時,需留意後端是否必須一併配合,並留意是否有相應的庫可使用(例如server-side的東東)
- 後端盡量用Django,有現成的RESTFUL可用
2019年9月16日 星期一
plain of rock climbing
Phase1
多認識岩友,自己和他們爬,這階段會比較累,可能會每天爬。
Phase2
讓各群的岩友互相認識,並增強他們之間的連結,使他們會主動互相約攀岩。
Phase3
每天都有朋友在岩館攀岩,不用主動約,想攀岩時到岩館,隨時都有繩伴,無被拒風險。
2019年8月26日 星期一
2019年8月25日 星期日
ka
卡保逐鹿檢討
- 手套非必要
- 中級山我喝水大概2.5L/10hr,由於有混糖水可能不準,需要進一步確認
- 飲食(以下測試,一天肝糖存量足夠,不會軟腳):
- 花生牛奶
- 小饅頭
- 咖哩+乾燥飯
- 糖水
 
- 走路技巧需加強,消耗過多能量
- 燃燒過多能量,導致產生過多餘熱、體溫升高,出汗增加,喝水量、進食也增加。
- 脫上衣有助於散熱、降低體溫,可以減少出汗,避免飲水用盡。
- 要帶濾水器,這次水差點不夠喝(剩100ml)
- 濃度過高的糖水會導致脫水
- 糖水可能得加鹽,或用運動飲料取代(by建宏)
總結
學習休息步
建立能量消耗指標,並評估休息步之效益
2019年7月16日 星期二
pandas note
pandas note
read_csv
import pandas as pd
pd.read_csv('<fileanme>', delimiter='<delimeter>', names=['col1', 'col2'])
unique
data['status'].unique()
return
array(['activated', 'running', 'closed', 'transferring', 'finished',
       'holding'], dtype=object)
to_datetime
convert string/int(unix time) to datetime object
pd.to_datetime(data['time'], unit='s')
2019年7月10日 星期三
multipath
setup multipath
caution
this configuration only work on sl6+promise machine.
- install packages
- xfsprogs
- device-mapper-multipath
 
- /etc/multipath.conf
- reboot machine
/etc/multipath.conf
defaults {
	user_friendly_names yes
}
blacklist {
	devnode "^(sd)[a-z][[0-9]*]"
}
devices {
		device {
		vendor  "Promise"
		product "VTrak"
		path_grouping_policy  group_by_prio
		#getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
		getuid_callout  "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
		#prio_callout "/sbin/mpath_prio_intel /dev/%n"
		prio  alua
		path_checker  tur
		path_selector "round-robin 0"
		hardware_handler  "1 alua"
		failback  immediate
		rr_weight uniform
		rr_min_io 10000
		no_path_retry queue
		features  "1 queue_if_no_path"
		product_blacklist "VTrak V-LUN"
	}
}
- checking multipath
 if multipath been setup correctly, the output ofdf -hshould be:
Filesystem  Size  Used Avail Use% Mounted on
/dev/sdq2 1.8T  107G  1.6T 7% /
tmpfs  47G 0 47G 0% /dev/shm
/dev/sdq1 194M 82M  103M  45% /boot
/dev/mapper/mpathi 21T  235G 20T 2% /data01
/dev/mapper/mpathb 21T  252G 20T 2% /data02
/dev/mapper/mpatha 21T  243G 20T 2% /data03
/dev/mapper/mpathc 21T  249G 20T 2% /data04
/dev/mapper/mpathg 21T  252G 20T 2% /data05
/dev/mapper/mpathd 21T  255G 20T 2% /data06
/dev/mapper/mpathe 21T  238G 20T 2% /data07
/dev/mapper/mpathh 13T  160G 13T 2% /data08
lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda               8:0    0   20T  0 disk  
└─mpathi (dm-0) 253:0    0   20T  0 mpath /data01
sdb               8:16   0   20T  0 disk  
└─mpathb (dm-1) 253:1    0   20T  0 mpath /data02
sdd               8:48   0   20T  0 disk  
└─mpatha (dm-2) 253:2    0   20T  0 mpath /data03
sdc               8:32   0   20T  0 disk  
└─mpathc (dm-3) 253:3    0   20T  0 mpath /data04
sde               8:64   0   20T  0 disk  
└─mpathg (dm-4) 253:4    0   20T  0 mpath /data05
sdf               8:80   0   20T  0 disk  
└─mpathd (dm-5) 253:5    0   20T  0 mpath /data06
sdg               8:96   0   20T  0 disk  
└─mpathe (dm-6) 253:6    0   20T  0 mpath /data07
sdh               8:112  0 12.8T  0 disk  
└─mpathh (dm-7) 253:7    0 12.8T  0 mpath /data08
sdq              65:0    0  1.8T  0 disk  
├─sdq1           65:1    0  200M  0 part  /boot
├─sdq2           65:2    0  1.8T  0 part  /
└─sdq3           65:3    0    8G  0 part  [SWAP]
sdi               8:128  0   20T  0 disk  
└─mpathi (dm-0) 253:0    0   20T  0 mpath /data01
sdj               8:144  0   20T  0 disk  
└─mpathb (dm-1) 253:1    0   20T  0 mpath /data02
sdl               8:176  0   20T  0 disk  
└─mpatha (dm-2) 253:2    0   20T  0 mpath /data03
sdk               8:160  0   20T  0 disk  
└─mpathc (dm-3) 253:3    0   20T  0 mpath /data04
sdm               8:192  0   20T  0 disk  
└─mpathg (dm-4) 253:4    0   20T  0 mpath /data05
sdo               8:224  0   20T  0 disk  
└─mpathe (dm-6) 253:6    0   20T  0 mpath /data07
sdn               8:208  0   20T  0 disk  
└─mpathd (dm-5) 253:5    0   20T  0 mpath /data06
sdp               8:240  0 12.8T  0 disk  
└─mpathh (dm-7) 253:7    0 12.8T  0 mpath /data08
blkid
/dev/sdq1: UUID="bf6357f7-44e8-4f64-9a10-0a58969f070f" TYPE="ext3" 
/dev/sdq2: UUID="77bddbd6-8e9a-4712-8ad4-5dd73ac2538b" TYPE="ext4" 
/dev/sdq3: UUID="e66ef8f7-6c99-44fe-9802-62e7dd8d357f" TYPE="swap" 
/dev/sdb: LABEL="data02" UUID="c88f14b9-056f-443a-ba91-3b842495501e" TYPE="xfs" 
/dev/sdd: LABEL="data03" UUID="cce1537b-31dc-4f5e-b34f-084cefa31604" TYPE="xfs" 
/dev/sdf: LABEL="data06" UUID="a51935d3-56e6-4f42-b302-941d8f0480b1" TYPE="xfs" 
/dev/sdh: LABEL="data08" UUID="e9c3ce71-823d-4121-a1ee-f18150e61e96" TYPE="xfs" 
/dev/sdi: LABEL="data01" UUID="38c17b01-23d7-4e40-b2c4-70a0fe72ec70" TYPE="xfs" 
/dev/sdk: LABEL="data04" UUID="07518c1e-5ff3-44b1-9937-79c446644401" TYPE="xfs" 
/dev/sdm: LABEL="data05" UUID="245602d8-e42e-467c-b81b-4efcb9e659aa" TYPE="xfs" 
/dev/sdo: LABEL="data07" UUID="27208abf-7b8c-4e00-afc2-c1675174a9c2" TYPE="xfs" 
/dev/mapper/mpathi: LABEL="data01" UUID="38c17b01-23d7-4e40-b2c4-70a0fe72ec70" TYPE="xfs" 
/dev/mapper/mpathb: LABEL="data02" UUID="c88f14b9-056f-443a-ba91-3b842495501e" TYPE="xfs" 
/dev/mapper/mpatha: LABEL="data03" UUID="cce1537b-31dc-4f5e-b34f-084cefa31604" TYPE="xfs" 
/dev/mapper/mpathc: LABEL="data04" UUID="07518c1e-5ff3-44b1-9937-79c446644401" TYPE="xfs" 
/dev/mapper/mpathg: LABEL="data05" UUID="245602d8-e42e-467c-b81b-4efcb9e659aa" TYPE="xfs" 
/dev/mapper/mpathd: LABEL="data06" UUID="a51935d3-56e6-4f42-b302-941d8f0480b1" TYPE="xfs" 
/dev/mapper/mpathe: LABEL="data07" UUID="27208abf-7b8c-4e00-afc2-c1675174a9c2" TYPE="xfs" 
/dev/mapper/mpathh: LABEL="data08" UUID="e9c3ce71-823d-4121-a1ee-f18150e61e96" TYPE="xfs"
2019年7月8日 星期一
4/7
Y
4/7和Y以及Y的同學去爬山,現在想想那應該是喜歡上爬山的契機,故此留個記錄。
走的路線是無耳茶壺山=>半屏山=>燦光寮山=>黃金神社,不難,但很熱。過程中有拉繩,有泥巴地,相當有趣。
下了燦光寮山後再往前走一些,向右望去,沿路走過的山在眼前如畫卷般展開,真的好漂亮。好難形容,那不僅是風景優美造成的漂亮,那是親身走過,才能發現的漂亮。
2019年6月22日 星期六
2019年4月1日 星期一
SE note
SE note
mount xrootdfs
xrootdfs -d -o rdr=root://{DPMHEAD}:1094//,uid={USERNAME of current account} {mount point}
http://xrootd.org/doc/man/xrootdfs.1.html
2019年2月20日 星期三
dd
dd用得到的指令
寫一個指定大小的空檔案
dd if=/dev/zero of=dd_1G bs=1M count=1024
寫入映像檔至隨身碟
dd if=<imgfile> -of=</dev/sd...>
2019年2月17日 星期日
firewalld
一些firewalld的筆記
新增service
新增指定service
firewall-cmd --zone=\<zone name> --add-service=\<service name>
列出service
firewall-cmd --get-services
自訂service
在/etc/firewalld/services/下新增\<service name>.xml檔,格式參考/usr/lib/firewalld/services/下的檔案
並執行
firewall-cmd --reload後就可以用--get-services參數看到該service
新增允許連入的IP
暫時
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept'
永久
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept'--permanent
Ref
https://blog.gtwang.org/linux/centos-7-firewalld-command-setup-tutorial/2/
2019年2月10日 星期日
dmlite-shell
dmlite-shell
這篇筆記中記錄了一些關於dmlite-shell的使用方式
dmlite-shell -e 'command’
-e 參數可以在外部直接執行dmlite-shell的指令,如此便能用python或bash來批次執行指令
2019年2月3日 星期日
openssl
openssl 常用的指令
X509
X509證書中包含了許多資訊,例如頒發者(Issuer)、主題(Subject)、起始時間(notBefore)、結束時間(notAfter)以及公鑰。這些資訊可以用openssl指令擷取出來,這篇筆記中記錄了一些最近常用的指令。
擷取頒發者資訊
openssl x509 -in <x509 cert file> -noout -issuer
擷取主題資訊
openssl x509 -in usercert.pem -noout -subject
印出證書相關訊息
openssl x509 -in usercert.pem -noout -text
pkcs 12
pkcs 12是種文件格式,副檔名為.p12,內部能包入多個加密對象,設計上具有相當多種功能,實際上大多只用來打包私鑰以及x509證書。在目前的工作中,常使用的功能如下:
輸出pkcs 12文件中的私鑰及證書
openssl pkcs12 -clcerts -nodes -in <filename>.p12 -out clkey.pem
-clcerts:輸出client的資訊
-nodes:不對私鑰進行加密(不加上此參數的話,要輸入密碼)
輸出pkcs 12文件中的私鑰
openssl pkcs12 -nocerts -clcerts -nodes -in <filename>.p12 -out clkey.pem
-nocerts:不要輸出證書
輸出pkcs 12文件中的證書
openssl pkcs12 -nokeys -clcerts -in CERN.p12 -out clcert.pem
-nokeys:別輸出私鑰
檢查
openssl verify -verbose -CAfile trustedca.pem usercert.pem
-CAfile檔案中必須含有信任鍊中的每個證書,以CERN CA為[4]例,把CERN Root Certification Authority 2.crt和CERN Root Certification Authority 2.crt兩個檔案相結合即是合法的*-CAfile*
另外,也可以使用這種方式
openssl verify -verbose -CAfile CERN-Root-2.pem -untrusted CERN-GridCA.pem ~/testcert.pem
兩種做法看起來是等價的
ref
[1] openssl manpage
[2] x509 manpage
[3] pkcs12 manpage
[4] CERN CA
Written with StackEdit.
2019年1月26日 星期六
dpm相關指令
dpm-開頭的一些指令
這裡會放一些我可能會忘記的dpm相關指令,特別是那些man page沒寫清楚的。
dpm-modifypool
這個指令可以修改pool的屬性,而pool的屬性多可以用dpm-listspace這個指令去查詢。值得一提的是,這些屬性和dpm-modifypool的長參數有時並不會使用相同的名字。
- --group(s)
 新增可以訪問該pool的group(s),後面的參數和man page寫的格式相同。這個參數會變更dpm-listspace中Authorized FQANs欄位,在這個欄位中的成員才可以存取該pool的資源。
- --fss_policy
 設定FS selection policy,也就是選擇file system的依據。這個參數並不存在於man page中,因此目前只確定有maxfreespace能選擇,大多數的情況下
rpm
一些rpm、yum指令
安裝、設定一些軟體時,會使用一些指令,較基礎的是yum install、yum search等等。除此之外,尚有一些常用,但又沒有常用到會隨時存在history中的指令,由於實在不好記,因此放在這裡以供自己日後參考。
rpm -qa
rpm “query” "all"的意思,會列出所有安裝的rpm包
rpm -ql <package name>
rpm “query” “List files in package” 的意思,會列出所選的rpm包所包含的檔案及其路徑。
yum provides <file name>
由檔案名反查含有該檔案的package,這在缺少.so檔時很好用
yum info <package name>
查詢已經安裝的packages的相關資訊
yum search|install|provider <args> --disablerepo='<repo name>'
disablerepo長參數用來忽略一些repo,避免搜尋到重覆或過新的的packages
Ref
rpm man page
yum man page
pkgs.ort  :查詢、下載rpm包的網站
2019年1月25日 星期五
tmux
tmux恢復session大小
使用家裡的電腦登入server的tmux session時,有時終端機顯示行數和公司電腦不一樣,導致tmux session的邊框變小,邊框外無法顯示。
為解決此狀況,需要detach tmux session後再attach。使用方法為
tmux detach-client -s <session number>
這個指令我經常忘記,因此放在這裡以供參考。
2019年1月22日 星期二
lcgdm
LcgDM - Data Management Servers
這篇文章是記錄一些小抱怨,和LcgDM不太相關。
做高能實驗的物理學家很愛用縮寫,其中我目前看過最扯的就是LcgDM了。
LcgDM是LCG Data Management(數據管理)的縮寫,而LCG又是LHC Computing Grid(LHC計算網格)的縮寫,其中LHC又是Large Hadron Collider(大強子對撞機)的縮寫。
好好一個 LcgDM project 竟然是三層半的縮寫組成,專有名詞像俄羅斯娃娃似的一個包著一個,在讀文件時一堆這種名詞讓人暈頭轉向。更難過的是,不知是否有意,在多數文檔中很少把全名寫過一次的,這讓新進人員看文件時非常之痛苦。
如果以後有幸能開發軟體,我絕對不會搞這些花招來折騰後人,太缺德了。
2019年1月13日 星期日
CentOS 7 架設 WebDAV
CentOS 7 架設 WebDAV注意事項
架設過程主要參照這篇文章:
How to Set up WebDAV with Apache on CentOS 7
由於我只是在區網下架設,所以不進行認證,因此conf檔改成以下形式:
DavLockDB /var/www/html/DavLock
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/webdav/
    ErrorLog /var/log/httpd/error.log
    CustomLog /var/log/httpd/access.log combined
        Alias /webdav /var/www/html/webdav
        <Directory /var/www/html/webdav>
            DAV On
            Order allow,deny
            Allow from all
            AuthType None
            Require all granted
            Satisfy Any
        </Directory>
</VirtualHost>
但這樣Client端會無法寫入檔案,此時在 /var/log/httpd/error.log 下會出現以下錯誤訊息:
[Sun Jan 13 20:32:34.870769 2019] [dav:error] [pid 22893] [client 192.168.2.26:63409] The locks could not be queried for verification against a possible "If:" header.  [500, #0]
[Sun Jan 13 20:32:34.870975 2019] [dav:error] [pid 22893] [client 192.168.2.26:63409] Could not open the lock database.  [500, #400]
[Sun Jan 13 20:32:34.871053 2019] [dav:error] [pid 22893] (13)Permission denied: [client 192.168.2.26:63409] Could not open property database.  [500, #1]
這是由於apache沒有寫入 /var/www/html/DavLock的權限,將DB的路徑改到其他有存取權限的地方,或是修改 /var/www/html/ 目錄的owner即可正常使用。
Written with StackEdit.
2019年1月3日 星期四
取出.rpm中的檔案
如何取出.rpm中的檔案
有時候需要再伺服器上安裝一些軟體,偏偏自己沒有root權限,又不想要自己重新編譯,那去下載人家已經編譯好的執行檔是一個常見的方式。
編譯好的執行檔可以在.rpm檔案中找到,這個可以去pkgs.org[2]這類的網站查詢,找到相應的OS版本後,下載下來後,將.rpm檔案解開後,執行檔通常就可以直接使用。以下是解開.rpm檔案的方法:
cd my-dir;
rpm2cpio to-install.rpm | cpio -idv
Ref
[1] superuser.com
[2] pkgs.org
