Skip to main content

16 posts tagged with "System"

View All Tags

· One min read

文章轉移

  • rsync cycbuff
  • rsync db/history
  • 重新建立overview
    • ctlinnd pause 'make overview'
    • makehistory -x -O -b x: won't write out history file entries. O: Create the overview database b: Delete any messages found in the spool that do not have valid Message-ID: headers in them.
    • makedbz -i i:To ignore the old database
    • ctlinnd go 'over'

設定檔檢查

  1. inncheck (inn.conf)
  2. scanspool -v (active, spool)

更新相關設定

  • 重新編譯innd,進入innd src底下
  • ./configure --opetions
  • make && make update

創新的newsgroup

  • ctlinnd newgroup name
  • modity db/newsgroup

其他

  1. 創新newsgorup
  1. 執行innd & nnrpd 會噴權限不足
    • 檢查/news/bin/innbind 有無SUID

· 2 min read

Install

直接透過atp-get 安裝即可

sudo apt-get install sphinx

Config

安裝完畢後,執行

sphinx-quickstart就可以基本設定了

每個選項都有說明,基本上都採用預設值即可

  • 設定檔: conf.py

    • 外掛管理
    • 資料夾結構管理
    • 一些通用參數,如作者名稱,版本...等
  • 主要的檔案: index.rst -. 檔案的結構 -. toctree

index.rsta

Lab Meetgins
=============
.. toctree::
:maxdepth: 4
:titlesonly:

20130924.rst
20131001.rst

國科會 meetings
===============
.. toctree::
:maxdepth: 4
:titlesonly:

20130925.rst

這邊我定義兩個toctree,每個toctree底下又會有其他的rst,結構大概是這樣

  • Lab Meetings
    • 20130924.rst
    • 20131001.rst
  • 國科會 meetings
    • 20130925.rst

總共兩個分類,每個分類底下的文章都是一個額外的rst檔案

在toctree底下的都是一些設定參數

  • maxdepth : 最大深度
  • titlesonly : 在首頁面只顯示子類的標題

Write

Sphinx採用的reStructuredText 格式跟markdown很類似,但是複雜了一些 官方網站有滿詳細的介紹,有需要時再去參考即可

Build

如果想要轉成html網頁,有兩種方法可以執行

  1. sphinx-build -b html . NSLMeeting 意思是建置html的網頁, 然後以當前目錄為source 來源,然後把檔案build到NSLMetting去。

  2. make html 在Makefile中定義了相關得動作,當執行make html的時候,其實就是執行 sphinx-build -b html . _build/html

這邊因為我想要直接弄到別的資料夾,所以我直接設定aliase去執行方法1

目前對於這套軟體還在學習階段,有任何學習會繼續紀錄。

· 2 min read

nmap是一個linux下的工具

nmap - Network exploration tool and security / port scanner

這邊記錄一下nmap的用法

nmap -sP 140.113.214.79/27

-sP: Ping Scan - go no further than determining if host is online 用ping去掃目標內的所有IP,並顯示有回應的IP,所以若對方是windows7且沒有打開ping的回應,則也會被當作host down

nmap -sL 140.113.214.79/27

-sL: List Scan - simply list targets to scan 只是單純的列出對方的hostname以及IP,不送出任何封包去檢測

nmap -O 140.113.214.94 nmap -A 140.113.214.94

-O: Enable OS detection -A: Enables OS detection and Version detection, Script scanning and Traceroute

掃描對方主機的OS系統

nmap -PS/PA/PU/PY[portlist] 140.113.214.94

-PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports

用不同的方式去掃描特定的PORT。

  • PS 用TCP 搭配 SYN FLAG去偵測。
  • PA 用TCP 搭配 ACK FLAG去偵測。
  • PU 用UDP去偵測。
  • PY 用SCTP去偵測。

nmap -sS/sT/sU 140.113.214.94

採用不同的方式去掃描所有port。

  • sS (TCP SYN scan) .
  • sT (TCP connect scan)
  • sU (UDP)

nmap -v 140.113.214.94 顯示出詳細一點的資訊

· 4 min read

#[User]

不論是bash,tcsh,又或者是windows的cmd,都有一種叫做PIPE的功能

能夠將兩個獨立的程式給串接起來,把前面程式的輸出當作下一個程式的輸入

擁有這個指令,就能將本來當一功能的程式給組合起來變成複雜的工具了

舉例來說,我想要知道我當前目錄下有多少個檔案

就可以使用ls跟wc兩個指令合作完成,

使用 ls | wc 就會將ls的結果(檔案列表)當作輸入傳給wc這隻程式,然後就可以輕鬆地算出當前目錄的檔案數量

或者是有時候想要搜尋某些特定的字串,都會使用grep這個指令,譬如想要搜尋某個特定使用者正在執行的所有程序

ps auxww | grep username

所以pipe對於系統管理來說,是個非常重要的概念,能夠將每個獨立細小的程式給串接起來完成複雜的工作。

#[程式設計]

在FreeBSD(linux)上,shell能夠辦得到這樣的功能,實際上是利用了kernel中pipe的功能,這邊就已linux kernel 3.5.4為架構。

在程式中,pipe的概念就是一個水管,這個水管有兩個端口,一端負責寫資料到pipe,一端負責將資料從pipe中讀出來,所以我們可以做個簡單的測試。

int main(){
int rand1,rand2;
int fd[2];// declare a two-d array, store file_descriptor of the pipe (two side)
// fd[0] mease read side, fd[1] means write side
pid_t pid;//child process的pid
pipe(fd); //call system call (pipe) to create a pipe
//use fork to create a child process
//child process will wrtie data to pipe, and parent will read data from pipe
//child process
if((pid=fork())==0){
srand(getpid());
close(fd[READ_END]);//child won't use read size, so close it
rand1=rand()%RANGE; //create random number
write(fd[WRITE_END],&rand1,sizeof(rand1)); //write to pipe
close(fd[WRITE_END]);//close write side when write over
printf("%d has been created In Child Process \n",rand1);
exit(1);
}
else if(pid>0){
srand(getpid());
close(fd[WRITE_END]);//parent won't use write size, so close it。
rand2=rand()%RANGE;//create random number
read(fd[READ_END],&rand1,sizeof(rand1));//read the data from pipe
printf("%d has been created In Parent Process \n",rand2);
wait();
printf("Parent Process calulate sum is :%d \n",rand1+rand2);
close(fd[READ_END]);//close read side
exit(1);
}
return 0;
}

執行結果: 8 has been created In Child Process

5 has been created In Parent Process

Parent Process calulate sum is :13


3 has been created In Child Process

3 has been created In Parent Process

Parent Process calulate sum is :6

實際上,如果想要對同個端口去進行寫跟讀的動作,是行不通的,乍看之下會覺得PIPE只是一個

buffer,放置資料而已,實際上在kernel中,pipe被視為是一個file,當我們呼叫pipe時,真正最後會

呼叫到do_pipe這個function,在這個function中,會針對pipe的兩個端口分別去設定

O_RDONLY;O_WRONLY的標籤,這樣的設定使得pipe的端口就真的一邊只能讀,一邊只能寫。

有空在來講述一下file_descriptor file file_operation三者的關係,以及到底 file,socket,pipe...等這些device到底在kernel中如何運作。

· 2 min read

最近因為某個教授的要求,希望windows開機就可以自動vpn連線,所以這部份花了一些時間去研究,雖然我認為每次開機自己動手點兩下好像也沒有多困難阿~冏

這個概念其實不難,寫一個可以連線的batch file,每次開機的時候,自動去執行該batch file,就可以達到連線的功能了。

  1. 在網際網路那邊手動增加一個VPN連線,假設該VPN連線名稱為 vpn_connection。

  2. 寫一個batch file,內容增加一行

rasdial "my_vpn_connection" "myname" "mypasswd"

這時候可以手動執行看看,看會不會連線成功,如果連線不會成功,就根據錯誤代碼去解決。

  1. 執行taskschd.msc 這個排班程式,把該batch file加入至開機執行,並且在網路連線成功後才執行。

重開機測試!

· 2 min read

有時候根據應用需求,會需要針對去檢查目前系統上有哪些port正在被使用

#[FreeBSD]

可以使用 sockstat 這個command 來檢查系統上port的使用。

USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS

root cron 93468 4 udp4 :638 :*

在預設的情況下,會輸出

使用者名稱,執行的程序,該程序的pid,在該程序中使用該port的file descriptor是多少 使用何種協定,以及address

如果使用 sockstat -4lP tcp 就可以找出 使用tcp & ipv4 ,並且正在listen的port

這對於要尋找是否有人在寫Socket programming來說是很方便的。

詳細的可以man sockstat


#[Linux] 可以使用 netstat 這個工具來檢視,搭配一些參數還可以看到該 port 被那些 process 使用

netstat -anptn
tcp 1 0 127.0.0.1:40147 127.0.0.1:36524 CLOSE_WAIT 7147/vim
tcp 1 0 127.0.0.1:58289 127.0.0.1:52849 CLOSE_WAIT 19421/vi
...

#[Windows]

可以使用netstat來檢視,netstat能夠顯示的資訊非常的多,為了精簡我們的需求,必須去過濾這些資訊

在windows上使用find這個指令,類似於UNIX中grep的功能

舉例來說,netstat -an |find /i “listening" 這個指令

netstat -an 會顯示所有連線以及正在監聽的port,並且以數字的形式來顯示IP以及PORT

find /i “listening" 則會以不區分的方式去搜尋每一行,若包含listening則將該行印出

EX:

TCP 192.168.1.116:139 0.0.0.0:0 LISTENING

TCP 192.168.1.116:49156 216.52.233.65:12975 ESTABLISHED

ref: www.microsoft.com/resources/