• 6

大清早求救...LINUX

要進行大小的比對不訪看看下面這句的意義
echo 24 120 | mawk '{print($1>100, $2>100)}'
結果是 0 1

要抓取某一區的話,前面有個大大有講awk的用法了
awk很強大,我其實也沒辦法很熟的用它

要抓某一個區間的東西的話
echo A1 A2 A3 B1 B2 B3 | awk '{print $4 }'
結果是B1


感謝各位不厭其煩幫忙︿︿

我也想把那些前輩說得東西搞清楚
不然一知半解我也很難使用
即使交了作業也不是我能用的東西
還是會很空虛
當然也有上google去找
不過訊息很雜
因為不熟悉很難找出適合的關鍵字
所以還是會花許多時間
望各位諒解
armswar wrote:
ls -l | gr...(恕刪)


謝
因為以前自己買書回來看著玩
都沒有講到shell的部份
比較單純在gui介面下的一些操作
雖然文字模式也有
不過多半是一些不會太深的管理指令
或是一些比較無腦的架站方法
我以為那樣就會基礎了

很巧的遇到這個老師很少教指令
就愛玩shell
所以也只好繼續啃土司了
如果真的要學linux的話,通常是先建議去買本鳥哥的書
它算是入門最好用的
如果想玩進階一點的,可以去看unix power tools
它裡面會教你很多很實用的東西
我目前才啃完一點而已,暑假會把剩下的拼完

學這種像程式的東西,重點不在於語法怎麼使用,而是培養
解決問題的能力,比如在程式的algorithm ,design pattern
像shell script的話,我不太碰的,不過pipeline跟regular expresion 的使用時機是個重點
重點就在於怎麼把分散的工具用上面兩個東西拼成自己要語法
wrh7415369 wrote:
謝因為以前自己買書回...(恕刪)


wrh7415369大大, 的確我看你好像也有自己下過功夫, 所以我才會回應你的.
我是不太喜歡完全都還沒有下功夫, 就上來問問題的人.

我不能說GUI介面不好, 畢竟GUI做的好那是很棒的事.
不過以後如果你是系統管理者或是工程師的話.
command line才會是你的好朋友.

畢竟在linux/Unix上面Terminal就可以完成你99.99999%的事情了
連線速度比較快且遠端server即使沒有裝x window你也可以做事.
你就不需要remote整個桌面了.
(當然是有個小技巧可以只把單一視窗傳回你的電腦就好, 那不需要remote整個桌面)

還有rgly說得很對, 你現在需要的是, 好好加強一些基礎觀念和解決問題的能力.
解決問題的能力, 我是覺得多自己寫程式和看別人的程式都可以加強.
sed, awk, grep, regular expression算是寫shell script必須要了解的內容,
師父領進門, 修行看個人..
除非你想把linux當成windows 一樣的desktop...那就不需要學Shell script..

不然很多Server的設定安裝..都需要瞭解shell script的東西...
GUI的功能很強..但是碰上很多需要微調的設定內容..
還是需要用vi或其他editor搭配command line去進行設定..

鳥哥的網站不錯....
netman的網站也不錯...建議你花點時間看看.
wrh7415369 wrote:
問題卡在如何判斷超過2M的檔案怎麼判定副檔名為.LOG


find . -name "*.log" -size +2000000c

哈哈... 回慢了...
hxxX54yPZ5HH5VHP\hmpX5gTPh99X5J4Ph00X5YBPjjhexX5exHPDX52JP555554P5ZZ5rr
irs wrote:
find . -na...(恕刪)


不
一點都不慢
因為我還在頭痛中
一直沒成功
儘管很多前輩提供的方法
對不起,我是路過的

我覺得這一篇堪為問功課的範例

什麼叫自己先行了解過了,我想樓主做了個很好的示範

雖然這不是在FB,我還是想給個讚!

希望樓主的老師會放樓主一馬
你先拔到獅子的鬃毛.......你的電腦就會比別人快.........
還是找不出到底原因在哪裡
都沒效果...暈倒
===========
1. 前置工作
創造一個文字檔,大小超過2M,副檔名 .log ,並將其放於 /var/log下

2. 寫一支shell log_manager.sh
a. 檢查目錄中所有大於 2M的文字檔(用find指令),將其路徑,檔名,大小以及現在時間紀錄於 /var/log/log_manager.log,需用累加的方式

b. 如果此超過2M的文字檔副檔名為.log,則複製此檔為 xxx.log.date,其中date為現在時間,格式為year-month-day-hour-minute,並將此檔案壓縮成 xxx.log.date.tgz後將其搬移到另一掛載的磁碟(假設為/mnt/extradisk),而原來的文字檔內容清空; 整個過成如果有任何錯誤也有把錯誤訊息放在 /var/log/log_manager.log

c. 執行b步驟時,如果發現掛載磁碟已經有之前備份相同大小的同一檔案,則不做備份
3. 放到 crond


將第二步驟寫的 log_manager.sh放入 crond ,每3分鐘執行一次
------------------------------
#!/bin/bash
for filename in $(find /var/log -size +2M) ----------找出2m的檔案
do
ls -l $filename >> /var/log/log_manager.log -----------把找出的訊息LS後丟入log_manager.log
if file $filename | grep ASCII > /dev/null -----------如果他是個文字檔
then
echo "it is a ascii file" ----------則列印出這是文字檔

# x1= find /var/log -name "*.log" -size +2M)
#echo "x1"
#file=`ls -l | grep *.log | awk '{print $9}'`
# DATE=`date +%y-%m-%d-%H-%M-%S`
# touch $filename.$DATE /home/ray/

else

echo "it is not a ascii file"

fi

done


回到老問題
下一步
要如何把搜尋到的檔案擷取檔案名稱.log壓縮
用cp或mv搬到另一目錄後要如何把原檔案清空
並且判斷比較需不需要備份(我有翻到書是用diff作判斷嗎?不過這老師沒教過會不會有更容易的方法)

阿阿阿
10個小時了
  • 6
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?