Ubuntu 建置 SLURM 叢集運算管理環境筆記

基於 Ubuntu 16.04 ,建置一個控制節點 slurm-ctrl,兩個運算節點 slurm-node1 slurm-node2 的環境。
(建置參考 https://www.vpsee.com/2013/02/install-slurm-on-ubuntu/)

建置步驟

# 在控制節點與計算節點安裝 slurm
sudo apt-get install slurm-llnl

# 於控制節點產生 munge key
sudo /usr/sbin/create-munge-key
# 於控制節點啟用 munge 服務
sudo /etc/init.d/munge start
# 把控制节点生成的 munge.key 拷贝到各个计算结点:
scp /etc/munge/munge.key ubuntu@slurm-node1:/etc/munge/
scp /etc/munge/munge.key ubuntu@slurm-node1:/etc/munge/

# 於控制節點生成 slurm.conf 至 /etc/slurm-llnl/
# 並複製到每個計算節點 (每個計算節點 conf 都要一樣)
scp /etc/slurm-llnl/slurm.conf ubuntu@slurm-node1:/etc/slurm-llnl/slurm.conf
scp /etc/slurm-llnl/slurm.conf ubuntu@slurm-node2:/etc/slurm-llnl/slurm.conf
# (slurm 提供網頁的方式產生 config 在 /usr/share/doc/slurmctld/ 內)
# 在控制節點啟用 slurmctld 服務
sudo /etc/init.d/slurmctld start

# 於計算節點啟用 munge & slurmd 服務
sudo /etc/init.d/munge start
sudo /etc/init.d/slurmd start

如果從控制節點無法正常獲得計算節點的狀態,在運算節點重啟 slurmd 服務

sudo /etc/init.d/slurmd stop
sudo /etc/init.d/slurmd startclean

於控制節點中使用 sbatch 提交任務,用法參考:
http://bicmr.pku.edu.cn/~wenzw/pages/quickstart.html

筆記可能有部分 command 沒有列出來,依照實際 terminal 提示訊息應可排除問題。

 

Shell Script 印出質數

來源: http://advantage-bash.blogspot.com/2012/03/finding-prime-numbers.html


#!/bin/bash

#for displaying prime number between zero and given number

for (( i=2; i<=$1; i++ ));do
l=$(factor $i | cut -d : -f 1)
r=$(factor $i | cut -d : -f 2 | sed 's/ //g')
if (( $l == $r ));then
echo $i
fi
done

AWstats 網頁日誌分析工具

原文搬運: https://blog.ccnrz.info/2016/03/31/2016-03-31-it-awstats-application-built-with/

 

AWStats 是一套免費的日誌分析工具,用來分析 web, streaming, ftp or mail server 日誌。
工具運行在 apache 環境下。

文章中將會提到建置分析 apache 日誌環境與幾個常見問題,下列操作均以 sudo 方式進行。

將 AWStats 安裝至 Ubuntu

安裝 awstats 套件

apt-get install awstats

設定 AWStats

首先建立一份 www.abc.com 的設定檔

cp /etc/awstats/awstats.conf /etc/awstats/awstats.www.abc.com.conf

修改設定檔

vim /etc/awstats/awstats.www.abc.com.conf

進行如下設定

LogFile="/var/log/apache2/access.log"
SiteDomain="www.abc.com"
HostAliases="localhost 127.0.0.1 www.abc.com"

LogFile 變數為指定要分析 apache log 檔位置
如果要分析的不是 apache log, 還須設定 LogType 以及 LogFormat 這兩個變數

產生統計資料

/usr/lib/cgi-bin/awstats.pl -config=www.abc.com -update

如果是分析現有的 LOG,第一次會需要比較長的時間。(之前測試 73MB 的 log 跑了大概一小時多)
後續透過 crontab 排程進行,會比較快。

0 */3 * * * /usr/lib/cgi-bin/awstats.pl -config=yourdomain.ext -update > /dev/null

設定 apache 以檢視 awstats 的統計結果

啟用 apache 的 cgi 模組

a2enmod cgi

修改 apache web site 的設定檔

vim /etc/apache2/sites-available/000-default.conf

於 conf 文件末行新增下列內容

Alias /awstatsclasses "/usr/share/awstats/lib/"
Alias /awstats-icon "/usr/share/awstats/icon/"
Alias /awstatscss "/usr/share/doc/awstats/examples/css"
ScriptAlias /awstats/ /usr/lib/cgi-bin/
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

重新載入 apache 設定檔

service apache2 reload

檢視分析結果

開啟瀏覽器輸入下列網址
http://www.abc.com/awstats/awstats.pl?config=www.abc.com

網址中 config 的參數為指定要看 www.abc.com 設定檔產出的分析結果


常見問題

如果我有很多個日誌檔,要如何餵給 AWStats 呢?
AWstats 有一個日誌合併工具 /usr/share/awstats/tools/logresolvemerge.pl
比如說我在 /home/xxx/apache_log 下有 access.log access.log.1.bz2 access.log.2.bz2 三個日誌
那麼可以合併成 merged-access.log

/usr/share/awstats/tools/logresolvemerge.pl /home/xxx/apache_log/access.log* &gt; merged-access.log

/var/lib/awstats 目錄肥大 (2018/3/29 新增)
有時會遇到 /var/lib/awstats 目錄下 awstats122017.www.abc.com.tmp.58900 大量 tmp 檔案的情況,可以手動進行刪除。

ls /var/lib/awstats | grep -P "^awstats\d{6}\.([\w|\.])+\.tmp.\d+$" | xargs -d"\n" rm