2015年2月3日 星期二

pfsense remote syslog and email notification

使用pfsense時,如果不想一直開著瀏覽器盯著,卻又想監控事件時該怎麼辦呢?

我們可以利用兩種方法,第一種是設定pfsense email alert,在system-advanced-notifications,設定smtp mail,設定完後按test smtp看是否設定成功,這個會在gateway down的時候email通知。

第二種則是使用status-system log-settings,設定remote syslog server,將log傳到另一台server上,就可以把log以文字檔形式儲存,再搭配之前提過的工作排程器或crontab,就可以將log發送到手機來監控囉。

以ubuntu為例,init.d下的rsyslog即為syslog server,pfsense傳過來的log則會存在/var/log/syslog下。記得要service rsyslog restart或重開機才會生效。

grep -Fxvf a b 可以秀出b有a沒有的字串

使用if -n -z可以判斷是否為空字串
範例
VAR="hello"
if [ -n "$VAR" ]; then
    echo "VAR is not empty"
fi

VAR=""
if [ -z "$VAR" ]; then
    echo "VAR is empty"
fi

要將結果傳至變數則要加上$()
範例
var="$(grep -Fxvf a b)"

bash regular expression的寫法範例
re="^([^-]+)-(.*)$"
[[ "ABCDE-123456" =~ $re ]] && var1="${BASH_REMATCH[1]}" && var2="${BASH_REMATCH[2]}"
echo $var1
echo $var2
這邊的${BASH_REMATCH[0]為全部[1]為第一個sub patteren以此類推
另外下次再做regxp舊的就會被洗掉,所以如果要留記得存變數
=~ 為比較regxp的operator
!~則是反義

ubuntu下寫bash時出現[[: not found的error message
找了老半天原來是ubuntu的問題

In Ubuntu, /bin/sh points to /bin/dash, not /bin/bash as is in Debian.


To change this, either update your script

Code:

#!/bin/bash
另外執行時前面加bash也有同樣效果ex. bash a.sh



參考資料
http://ubuntuforums.org/showthread.php?t=2200196
https://doc.pfsense.org/index.php/Advanced_Setup_(2.0)
https://www.safaribooksonline.com/library/view/pfsense-2-cookbook/9781849514866/apas04.html
比較檔案
http://stackoverflow.com/questions/14500787/comparing-two-files-in-linux-terminal
timmurphy.org/2010/05/19/checking-for-empty-string-in-bash/
http://stackoverflow.com/questions/4651437/how-to-set-a-bash-variable-equal-to-the-output-from-a-command
sendEmail
http://ubuntuforums.org/showthread.php?t=1127478
Bash regular expression
http://stackoverflow.com/questions/18709962/bash-regex-if-statement
http://stackoverflow.com/questions/10520623/how-to-split-one-string-into-multiple-variables-in-bash-shell
http://stackoverflow.com/questions/10486575/bash-how-to-take-a-number-from-string-regular-expression-maybe
http://stackoverflow.com/questions/19737675/shell-script-how-to-extract-string-using-regular-expressions
關於escape很清楚的一篇解釋
http://stackoverflow.com/questions/18709962/bash-regex-if-statement
ubuntu sh to bash
http://ubuntuforums.org/showthread.php?t=1159137
時間變數變成英文
http://askubuntu.com/questions/265753/how-to-change-date-time-format-to-english
時間變數
http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/

沒有留言:

張貼留言