標籤

4GL (1) 人才發展 (10) 人物 (3) 太陽能 (4) 心理 (3) 心靈 (10) 文學 (31) 生活常識 (14) 光學 (1) 名句 (10) 即時通訊軟體 (2) 奇狐 (2) 爬蟲 (1) 音樂 (2) 產業 (5) 郭語錄 (3) 無聊 (3) 統計 (4) 新聞 (1) 經濟學 (1) 經營管理 (42) 解析度 (1) 遊戲 (5) 電學 (1) 網管 (10) 廣告 (1) 數學 (1) 機率 (1) 雜趣 (1) 證券 (4) 證券期貨 (1) ABAP (15) AD (1) agentflow (4) AJAX (1) Android (1) AnyChart (1) Apache (14) BASIS (4) BDL (1) C# (1) Church (1) CIE (1) CO (38) Converter (1) cron (1) CSS (23) DMS (1) DVD (1) Eclipse (1) English (1) excel (5) Exchange (4) Failover (1) Fedora (1) FI (57) File Transfer (1) Firefox (3) FM (2) fourjs (1) Genero (1) gladiatus (1) google (1) Google Maps API (2) grep (1) Grub (1) HR (2) html (23) HTS (8) IE (1) IE 8 (1) IIS (1) IMAP (3) Internet Explorer (1) java (4) JavaScript (22) jQuery (6) JSON (1) K3b (1) ldd (1) LED (3) Linux (119) Linux Mint (4) Load Balance (1) Microsoft (2) MIS (2) MM (51) MSSQL (1) MySQL (27) Network (1) NFS (1) Office (1) OpenSSL (1) Oracle (127) Outlook (3) PDF (6) Perl (60) PHP (33) PL/SQL (1) PL/SQL Developer (1) PM (3) Postfix (2) postfwd (1) PostgreSQL (1) PP (50) python (5) QM (1) Red Hat (4) Reporting Service (28) ruby (11) SAP (234) scp (1) SD (16) sed (1) Selenium (3) Selenium-WebDriver (5) shell (5) SQL (4) SQL server (8) sqlplus (1) SQuirreL SQL Client (1) SSH (3) SWOT (3) Symantec (2) T-SQL (7) Tera Term (2) tip (1) tiptop (24) Tomcat (6) Trouble Shooting (1) Tuning (5) Ubuntu (37) ufw (1) utf-8 (1) VIM (11) Virtual Machine (2) VirtualBox (1) vnc (3) Web Service (2) wget (1) Windows (19) Windows (1) WM (6) Xvfb (2) youtube (1) yum (2)

2017年7月10日 星期一

如何防止某段時間寄同一人大量信件 (postfix 利用 postfwd2 達到限制寄件數量)

http://postfwd.org/quick.html

https://ssorc.tw/4296

我今天要來限制一個 Email 帳號一天只能寄 1000 封,超過了就會被擋掉無法再寄
Postfix 官網有提供幾個外掛使用,我拿 postfwd 來使用,postfwd 俗稱 postfix firewall daemon
另一個 policyd 可以參考 http://signalboxes.net/howto/policyd/
以下是 policyd 與 postfwd2 比較表
項目
Policyd v2 (cluebringer)
postfwd2
程式語言 Perl Perl
規則存放 Database FIle
參數調整 設定檔 程式參數
限制信件量 (per user, per domain) V V
ACL V V
Greylisting V V
Check HELO V
Support Amavis V
Check SPF V
WebUI V (沒有帳密驗證)
Date/time based rules
V
DNSBL
V
IPv6 出現格式錯誤 正常
文件 較為清楚 敘述較為模糊、複雜
安裝方式 RPM、手動 手動
設定 看似簡單,但需操作 DB 看似複雜,但邏輯容易理解
記錄檔 符合 Syslog 標準 符合 Syslog 標準
最後更新日期 2013-10-26 (2.014)
(與前一版幾乎沒有差異)
2013-04-18 (1.35)

postfwd 需要的 perl 套件
cpan -i Net::Server::Daemonize
cpan -i Net::Server::Multiplex
cpan -i Net::Server::PreFork
cpan -i Net::DNS
cpan -i IO::Multiplex
再來至 postfwd 下載套件,裡面包含 v1 與 v2 ,我要用 v2 版
解開後放到 /usr/local/postfwd (裡面就有 bin doc etc man plugins sbin tools 等目錄)
編輯 /usr/local/postfwd/bin/postfwd-script.sh,這是啟動檔
# 用 postfwd2
#PFWCMD=/usr/local/postfwd/sbin/postfwd
PFWCMD=/usr/local/postfwd/sbin/postfwd2
# rulesetconfig file 改名
PFWCFG=/etc/postfix/postfwd2.cf
# pidfile 改名
PFWPID=/tmp/postfwd2.pid
# 使用者換成 postfix
PFWUSER=postfix
PFWGROUP=postfix
# port 改成 10045
#PFWPORT=10040
PFWPORT=10045
# --shortlog 拿掉,因為 v2 不支援,加入 --keep_rates --save_rates /tmp/postfwd2.cache,才能有計數器功能,並額外記錄於 syslog
PFWARG="--summary=600 --cache=600 --cache-rbl-timeout=3600 --cleanup-requests=1200 --cleanup-rbls=1800 --cleanup-rates=1200 --keep_rates --save_rates /tmp/postfwd2.cache --logname postfwd2 --facility local0"
# 在 reload 的地方,把 -- reload 改成 --reload
放到 init.d 裡啟動
ln -s /usr/local/postfwd/bin/postfwd-script.sh /etc/init.d/postfwd2
編輯 /etc/postfix/main.cf,整合到 postfix 裡
# 如果有其它參數,這個一定要放在最前面
smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10045
編輯 /etc/postfix/postfwd2.cf,這是放 rules 的地方,每設定一次就要 restart postfwd2
# 每天只允許同一寄件者只能寄 1000 封,多了就阻擋
# sender 是固定參數
# 1000 就是 1000 封
# 86400 就是 一天的時間 (秒)
# 後面的字串就是退信訊息
# Reject sender sends over 1000 per day
id=R01; action=rate(sender/1000/86400/REJECT sender $$sender exceeded limit of 1000 per day)
# 每天只允許同一來源 IP 只能寄 2000 封
# Reject client sends over 2000 per day
id=R02; action=rate(client_address/2000/86400/REJECT client $$client_address exceeded limit of 2000 per day)
編輯 /etc/rsyslog.conf,我把 log 額外放,預設是會放在 maillog 裡
*.info;mail.none;authpriv.none;cron.none;local0.none /var/log/messages
local0.* /var/log/postfwd2
service rsyslog restart
編輯 /etc/logrotate.d/syslog,把 log 檔作輪替
# 加入
/var/log/postfwd2
秀出定義在 conf 裡的 rule
/usr/local/postfwd/sbin/postfwd2 -f /etc/postfix/postfwd2.cf -C
查看計算結果
/usr/local/postfwd/sbin/postfwd2 --dumpcache
%rate_cache -> %client_address=127.0.0.1 -> @list -> 'R02+2000_86400'
%rate_cache -> %client_address=127.0.0.1 -> %R02+2000_86400 -> @action -> 'REJECT client 127.0.0.1 exceeded limit of 2000 per day'
%rate_cache -> %client_address=127.0.0.1 -> %R02+2000_86400 -> @count -> '1'
%rate_cache -> %client_address=127.0.0.1 -> %R02+2000_86400 -> @maxcount -> '2000'
%rate_cache -> %client_address=127.0.0.1 -> %R02+2000_86400 -> @rule -> 'R02'
%rate_cache -> %client_address=127.0.0.1 -> %R02+2000_86400 -> @time -> '1391677750.95566'
%rate_cache -> %client_address=127.0.0.1 -> %R02+2000_86400 -> @ttl -> '86400'
%rate_cache -> %client_address=127.0.0.1 -> %R02+2000_86400 -> @type -> 'rate'
%rate_cache -> %client_address=127.0.0.1 -> %R02+2000_86400 -> @until -> '1391764150.95566'
%rate_cache -> %sender=cross@ssorc.tw -> @list -> 'R01+10_86400'
%rate_cache -> %sender=cross@ssorc.tw -> %R01+10_86400 -> @action -> 'REJECT sender cross@ssorc.tw exceeded limit of 1000 per day'
%rate_cache -> %sender=cross@ssorc.tw -> %R01+10_86400 -> @count -> '1'
%rate_cache -> %sender=cross@ssorc.tw -> %R01+10_86400 -> @maxcount -> '1000'
%rate_cache -> %sender=cross@ssorc.tw -> %R01+10_86400 -> @rule -> 'R01'
%rate_cache -> %sender=cross@ssorc.tw -> %R01+10_86400 -> @time -> '1391677750.95566'
%rate_cache -> %sender=cross@ssorc.tw -> %R01+10_86400 -> @ttl -> '86400'
%rate_cache -> %sender=cross@ssorc.tw -> %R01+10_86400 -> @type -> 'rate'
%rate_cache -> %sender=cross@ssorc.tw -> %R01+10_86400 -> @until -> '1391764150.95566'
刪除計數結果,重新計算
/usr/local/postfwd/sbin/postfwd2 --delrate="sender=cross@ssorc.tw"
rate cache item 'sender=cross@ssorc.tw' removed
以上是清 sender,下面的就是清來源 IP 歸零
/usr/local/postfwd/sbin/postfwd2 --delrate="client_address=127.0.0.1"
rate cache item 'client_address=127.0.0.1' removed
如果成功外阻擋的話,maillog 會看到
Feb 6 16:51:35 ssorc postfix/smtpd[24633]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 554 5.7.1 <cross@ssorc.tw>: Recipient address rejected: sender cross@ssorc.tw exceeded limit of 1000 per day; from=<cross@ssorc.tw> to=<cross@ssorc.tw> proto=ESMTP helo=<ssorc.tw>
至於 postfix 要怎麼新增 virtual domain
編輯 /etc/postfix/main.cf
smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10045,permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
virtual_mailbox_domains = ssorc.tw
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps
virtual_mailbox_base = /var/vmail
virtual_uid_maps = static:1000
virtual_gid_maps = static:1000
編輯 /etc/postfix/virtual_mailbox_maps
cross@ssorc.tw ssorc.tw/cross/Maildir/
接著作完以下
postmap /etc/postfix/virtual_mailbox_maps
useradd -u 1000 -d /var/vmail -s /sbin/nologin vuser
mkdir /var/vmail/ssorc.tw/
chown -R vuser.vuser /var/vmail

postfwd 提供一個流程圖 可以看一下了解運作方式

http://postfwd.org/postfwd-ARCH.png

其它的限制也可以參考 postfwd rate limit examples
我上面的測試是針對所有 domain 的,但假如你要針對某個也是可以的
像它範例有提到 client_name=unknown 就針對來源是未知的
收件者是某某某 recipient_domain=XXX.tw
除了針對 sender 與 client_address 也可以針對 收件者名稱
id=R03; action=rate(recipient/20/86400/REJECT recipient $$recipient exceeded limit of 20 per day)
也可以針對信件大小 (不過我試不出來,從 cache 裡看不到相關資訊)
id=R04; action=size(recipient/2048000/86400/REJECT only allow 2mb per day)

Postfix 郵件過濾

https://blog.mikuru.tw/archives/36

這次我們講到如何利用 postfix 提供的種種過濾機制把討厭的 SPAM 擋在門外。
過濾的目標包括:來源、寄件者、收信者、附加檔、本文內容, etc.

[說明]
Postfix 本身就具備了兩種郵件過濾的機制:分別是標頭過濾(header)與本體過濾(body)
要使這兩個功能生效,你必須在 /usr/local/etc/postfix/main.cf 中加入:
header_checks = regexp:/usr/local/etc/postfix/header_checks
body_checks = regexp:/usr/local/etc/postfix/body_checks
header_checksbody_checks 分別代表了你的標頭過濾檔及本過濾檔。
過濾檢查的描述型態可以有三種方式
*hash:雜湊
*regexp:正規表示式(Regular Expression)
*pcre:相容於Perl之正規表示式(PCRE, Perl Compatable Regular Expression)
在本文中,我們將以 regexp 作為過濾檢查的描述型態。
[標頭過濾]
標頭,就是信件附帶的資訊,包含標題(Subject)、送件者 (From:)、收件者 (To:)及其他相關資訊,
甚至連你用什麼 mail client 來發送這封信件,都可以在標頭中看出端倪。
要設定標頭過濾的判斷條件,我們必須編輯 /usr/local/etc/postfix/header_checks
*對於發信者來源的過濾,我們可以加上:
/^From:.*badguy\.com/       DISCARD
*對於郵件標題的過濾,我們可以加上:
/^Subject:.*香豔刺激/        DISCARD
*對於途中經過轉寄主機的過濾,我們可以加上:
/^Received.*relay\.asshole\.com/  DISCARD
*對於郵件附加檔案的過濾,我們可以加上:
/filename\=.*\.pif/         DISCARD
/name\=.*\.pif/          DISCARD
[本體過濾]
本體,就是信件本身的內容囉。也就是發信者要呈現給收件者的訊息。
要設定本體過濾的判斷條件,我們必須編輯 /usr/local/etc/postfix/body_checks
*對於特定字串的過濾,我們可以加上:
/^dirty_words/           DISCARD

2017年6月13日 星期二

2017年4月13日 星期四

三關價 / CDP / Pivot Point

http://www.everinvest.com.tw/bbs/forum.php?mod=viewthread&tid=67
http://jinshiang.pixnet.net/blog/post/12630593-%E4%B8%89%E9%97%9C%E5%83%B9

三關價
用在研判短線或當沖,可輕易找出其區間和支撐壓力。
尤其在盤整行情,更不失為一極佳的判斷工具,也是期貨投資人掌握盤勢的重要參考指標。  

壹、所謂三關價指上關、中關及下關的價格,其次日的三關價計算公式是:
*上關:今低+(今高-今低)乘以 1.382
*中關:(今高+今低)/2
*下關:今高-(今高-今低)乘以 1.382。

貳、基本應用法如何判斷明日指數區間   
若趨勢不變,明日區間也會與今日區間相同。如:
A日高點:4,020,當日收盤 3,924,低點是 3,910;
依前一個交易日算出當日上關 4, 130,中關 4,056,下關3,982。
依計算公式則隔天,上關 4,062,中關 3,965,下關 3, 882,
因 A日收盤低於當日下關價,預估 10/8 波幅區間將在 3,965至3,882 之間。

區間落點研判法:
(一)收盤在上關之上:明日以中關以上觀察,高點不預設,但考慮實際波幅的應用,下關理論上不會出現。
(二)收盤在上關與中關之間:明日以上關與中關間觀察,下關出現機率小。
(三)收盤在下關與中關之間:明日以中關與下關間觀察,上關出現機率小。
(四)收盤在下關之下:明日以中關以下觀察,低點不預設,但考慮實際波幅的應用,上關原則上不會出現。

參、多空交易策略擬定
(一)收盤在中關以上,屬強勢,多方為宜,中關以下視為弱勢,以空為主。
(二)未出現轉盤前,操作策略不變。肆、進出法則:箱型操作,三關互為支撐與壓力,過為支撐,破則變為壓力。

肆、進出法則:箱型操作,三關互為支撐與壓力,過為支撐,破則變為壓力。
(一)上,中,下關之間來回:上關賣,中關賣或買,下關買(逆勢操作)。
(二)突破上關,漲勢形成而追多。跌破下關,跌勢確認而追空。(順勢操作)

伍、關盤時操作策略
(一)開盤即過上關時:   
        (1)關盤即過上關:屬超強趨勢,此時必然亦超越昨高-全力作多。
            (如此時實際波幅已大,不妨等拉回尋支撐順勢買進)
        (2)若盤中跌到中關止跌,則中關視為第二買點,但此時多單應謹慎.
        (3)盤中若跌破中關,則為轉盤,多單宜觀望。

(二)開盤價在上關與前一交易日高點之間時:   
        (1)開盤開在上關與昨高間,屬強勢開盤,僅開過昨高,雖以多單為主,但未突破上開前,可小試短空。
        (2)若過上關可追多,停損設在上關或昨高之下。
        (3)若盤中跌破昨高多單宜保守,可待價位跌到中關再次買進,設停損於中關之下。
        (4)盤中跌破中關,則有轉盤意味,多單宜觀望。

(三):開盤開在昨高和中關間:盤堅格局,可多空雙向略為偏多。

(四):開盤開在昨低與中關間:盤軟格局,多空雙向略為偏空。

(五):開盤開在昨低與下關間:弱勢格局,空單為主,多單在近下關時可小試,停損設於下關之下。

(六):開盤開在下關之下,極弱勢開盤可全力放空。

陸、盤中買賣策略
(一)買點:
        (1)盤中攻過上關回檔至上關不破。
        (2)上關一中關之間來回振盪。在盤中回檔至中關止跌時,或攻破上關拉回不破時,皆可買進。
        (3)中關-下關之間來回振盪。盤中回檔至下關止跌時可買進。

(二)賣點:
        (1)在上關-中關之間振盪。
        (2)攻過上關後又跌破可賣出。
        (3)跌破中關且站不回。
        (4)在中關-下關之間振盪,攻過中關後又跌破時可賣出。
        (5)跌破下關又站不回。

柒、收盤研判
(一)收在上關之上:收盤強勢空單回補,多單可留,明日高點可期。
(二)收在上關與中關間:收盤偏強,空單不宜留,多單留倉與否,視成本價做考量。
(三)收在中關與下關間:收盤偏弱,多單宜平倉離場。空單視成本而考量留倉與否。
(四)收在下關之下:收盤弱勢,多單平倉,空單可留。明日仍有低點 。
=====================

CDP 

在技術指標上,CDP(逆勢操作系統),是利用前一個交易日的開盤價、收盤價、最高價與最低價的資訊,
將其計算與分析,劃分當天大盤指數變動範圍為五個等級,做為當日短線進出的研判標準,屬於極短線的技術指標。

公式:H:最高價,L:最低價,O:開盤價,C:收盤價,Pt:波幅(即最高價減最低價)
(1) 首先求出昨日行情的CDP值:  CDP = ( H + L + 2C ) / 4
(2) 再分別計算昨天行情得最高值(AH)、近高值(NH)、近低值(NL)及最低值(AL):
  AH = CDP + Pt(H-L)  NH = 2CDP - L  NL = 2CDP – H  AL = CDP – Pt(H-L)

買賣研判原則:
(1) 當指數在近低值附近為買近時機,在近高值附近為賣出時機。
(2) 開盤價即在最高價或最低價附近,代表盤勢強勢十分明顯。
    當開盤價在最高值附近,投資人應追買;當開盤價在最低值附近,投資人應追賣。
===============

Pivot Point

這個指標它是用來抓隔日高低點的。

其計算公式如下:
H—-昨日高價L-—昨日低價C-—昨日收盤價 
TR=H-L X==(H+ L+ C)÷3

(改良後之用法如下)

2X—L=→ 多頭了結點- 多頭上車點  
2X-H 空頭了結點 空頭上車點 
X+TR 空頭停損點 多頭下車點 
X-TR 多頭停損點 空頭下車點 
2X -2L +H 最高價 隔天還有更高價 
2X -2H+L 最低價 隔天還有更低價       

2X- L
一般書上都說是多頭可在此價出現時平倉獲利了結,故曰 多頭了結點,其實大錯特錯!
此價正是多頭可大舉加碼之時也,或是波段的起始價也。
尤其是跌了一大段了 ,出現此價, 表示多頭可趁勢進場作多 ,有時波段低點就能被你抓到。

2X- H
則正好相反 , 代表 波段下跌要開始了,還有當日黑盤作收機會較大。
同樣的則是多頭停損點與波段空點的起始價也。
當天作多的投資人要下車者 ,可在X +TR出現時平倉離場,則可獲利。
而我一般都是等到明天再作定奪。
作空的投資人 要下車者, 可在X-TR出現時平倉離場,亦可獲利。

2X- 2L+ H
要是在底部區附近出現時,通常代表波段上漲的訊號此時發布,多單抱牢,好幾天之後還有高價可讓你賣。

2X-2H+L
反之則是波段賣出之訊號。

此指標還有一個祕密:當盤局 忽多忽空時,當天的價位大都不會觸及上述那幾個價位 ,
萬一 那天2X-L出現時,表示已脫離盤局,多單可進場布局,當日收盤紅面居多。
故此指標也有預測指數價位漲跌的功能,有八成以上的準度,不必等到收盤就可篤定確認,實在是太神奇了!

應用此指標有一個要注意的事: 2X- L 與 2X-H當天一般只能往一個方向游走,
如果 出現兩頭破的情況,要以 最後一個 方向 出現的為準,隔天還會順著那個方向行進 ,
這種情形的發生 , 大都是盤中 有突發的大利多或利空衝擊著股市 。
如當日先出現2X-L 往上走,隔一會兒 2X- H 又出現了,此時投資人要當機立斷 ,
多單先出場再放空,隔天還會有低價讓你回補的 , 這個準確度更高達九成以上,
特別提醒投資人注意 ,以後就不會慘遭套牢了。

波段投資人可觀察 2X - L 的每日變化情形,提高停利點。
指數是上漲時, 2X- L 每天開盤沒多久即被突破。
等到那天 2X- L 一直碰觸不到 ,而反向 破2X -H時,多單 就要下車了 ,代表波段漲勢的結束。

==================

1.三關價    預估日線的高低壓力支撐可配合量能狀況,趨勢須判斷正確才行.
2.CDP       做短線可用為盤整時所用大行情不適用加個線型走勢
3.Pivot Point 

為指數期貨之波段操作指標(平均約3~5天)
當趨勢型目前成交價會在所有信號之外
當進入信號區間表示趨勢強度減緩進入盤整
進入盤整改用盤整指標(三關價,CDP,PivotPoint)

=======================

三關價=>三個價格 =>   
上關: 今低+(今高-今低)乘以 1.382   
中關: (今高+今低)/2(僅用 高+低 為基準 當收最高或最低 容易有誤)  
下關: 今高-(今高-今低)乘以 1.382。  

CDP =>五個價格 =>
首先求出昨日行情的CDP值:    
CDP =( H + L + 2C ) / 4(收盤價用2次+高+低為基準 當收最高或最低 容易有誤)  
再分別計算昨天行情得最高值(AH)、近高值(NH)、近低值(NL)及最低值(AL)  
AH =CDP + Pt(H-L) H:最高價   L:最低價  
NH =2CDP - L O:開盤價  C:收盤價  
NL =2CDP–H Pt:波幅(H-L)  
AL =CDP – Pt(H-L)  

Pivot Point =>七個價格 =>    
BOP= (C+H+L)/3   (收盤價+高+低 為基準 修正三關價&CDP  )  
H3= (BOP-L)*2+H  
H2= BOP-L+H    
H1= BOP * 2 - L            
L1= BOP * 2 - H    
L2= BOP- H + L    
L3= (BOP-H) *2 + L          

=======================

2017年2月15日 星期三

html 頁面 做成 A4 樣式

http://monkeybinbin-blog.logdown.com/posts/254000-css-print-style-display-a4

CSS :
body {
  background: rgb(204,204,204);
}
page[size="A4"] {
  background: white;
  width: 21cm;
  height: 29.7cm;
  display: block;
  margin: 0 auto;
  margin-bottom: 0.5cm;
  box-shadow: 0 0 0.5cm rgba(0,0,0,0.5); 
}
h1{
  text-align:center;
}
@media print {
  body, page[size="A4"] {
    margin: 0;
    box-shadow: 0;
  }
}

HTML :
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Print Style Page Size A4" />
  <meta charset="utf-8">
  <title>Print Style Page Size A4</title>




<style type=\"text/css\">
<!--
page[size=\"A4\"] {
  background: white;
  width: 21cm;
  height: 29.7cm;
  display: block;
  margin: 0 auto;
  margin-bottom: 0.5cm;
  box-shadow: 0 0 0.5cm rgba(0,0,0,0.5);
}
@media print {
  body, page[size=\"A4\"] {
    margin: 0;
    box-shadow: 0;
  }
}
-->
</style>
</head>
<body>
  <page size="A4">
    <h1>Demo Page 1</h1>
  </page>
  <page size="A4">
    <h1>Demo Page 2</h1>
  </page>
  <page size="A4">
    <h1>Demo Page 3</h1>
  </page>
  <page size="A4">
    <h1>Demo Page 4</h1>
  </page>
</body>
</html>

2017年1月25日 星期三

tiptop 字串 split 成array作法









https://tzunghua.blogspot.tw/2012/02/4gl-split.html


##################################################################################################
# 字串切割成Array
# @author  : JeffreyWu 
# @date    : 2012-02-10
# @param  : p_str   [STRING] 來源字串 Ex:/u1/out/1234.txt
# @param  : p_delimiter  [STRING] 分裂字符 Ex:","
# @param  : p_RemoveEmpty [BOOLEAN] 是否移除空白Array Ex:TRUE Or FALSE
# @return       : p_arr   [DYNAMIC ARRAY OF STRING]
# @description : 字串切割成Array
##################################################################################################
FUNCTION sl_Split(p_str,p_delimiter,p_RemoveEmpty)
 DEFINE p_str         STRING
 DEFINE p_delimiter   STRING
 DEFINE p_tok         base.StringTokenizer
 DEFINE p_arr         DYNAMIC ARRAY OF STRING
 DEFINE p_RemoveEmpty  BOOLEAN
 DEFINE p_tokStr   STRING
 
 LET p_tok = base.StringTokenizer.createExt(p_str,p_delimiter,"",TRUE)
 
 CALL p_arr.clear()
 
 WHILE p_tok.hasMoreTokens()
  LET p_tokStr = NULL
  LET p_tokStr = p_tok.nextToken()
  
  IF p_RemoveEmpty THEN
   IF p_tokStr.getLength() > 0  THEN
    CALL p_arr.appendElement()
    LET p_arr[p_arr.getLength()] = p_tokStr
   END IF
  ELSE
   CALL p_arr.appendElement()
   LET p_arr[p_arr.getLength()] = p_tokStr
  END IF

 END WHILE
 
 RETURN p_arr
END FUNCTION

2017年1月16日 星期一

禁止 root 以 ssh 登入

http://mepopedia.com/forum/read.php?135,5748

1. 找到檔案 /etc/ssh/sshd_config

2. 修改其中的

#PermitRootLogin yes

改為

PermitRootLogin no (注意開頭不要有井字號 #)

3. 重新啟動 SSH

/etc/rc.d/sshd restart