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 -h
should 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