請問資料擷取問題 - Linux

Ina avatar
By Ina
at 2013-10-15T19:19

Table of Contents


我有一個檔案是記錄一些log的..檔名叫做Test_log
但是這檔案大於10mb,會把Test_log 存成Test_log1
之後再收到的log,會繼續存成新的Test_log
如果在有檔案在大餘10mb,就會將原本的Test_log1刪除,再將Test_log存成Test_log1
大約就是這個模式在記錄log...


我為了讓這個log都能保存下來...所以我寫了一個簡單的Script放在crontab
大概指令如下
cat Test_log Test_log1 > Test_long_log
diff Test_log Test_long_log > Test_diff_log
cp Test_long_log Test_long_log1
cat Test_diff_log Test_long_log1 >> Test_long_log

現在遇到一個問題 Test_long_log,檔案越來越大,
目前已經達到4gb了,所以我在windows也開不起來了

而這些log,都是記錄我一些sensor data,格式大約如下

2013-Oct-10 11:01:02 sensor1,sensor2,sensor3
2013-Oct-10 11:01:06 sensor1,sensor2,sensor3
2013-Oct-10 11:01:09 sensor1,sensor2,sensor3
.
.
.
2013-Oct-10 11:01:13 sensor1,sensor2,sensor3


因為這些sensor資料,我大約每個小時只需要一筆即可...
是否有機會依照小時去做資料擷取..
或是更簡單一點,每100行,我只需要截取第一行即可...


是否有其他方式去讓我log能完整保留,因為如果真的可以每100行只保留一行
那我需要面對另一個問題是,如何算是哪個些資料是新增的,要將他寫入 Test_long_log

請網友幫幫忙..謝謝

--
Tags: Linux

All Comments

Dora avatar
By Dora
at 2013-10-19T17:46
為什麼要寫入diff? 然後每100行存一個可以用sed
Xanthe avatar
By Xanthe
at 2013-10-20T09:49
還有,增加內容可用>>解決,一堆tmp file很慢又難看懂
Doris avatar
By Doris
at 2013-10-20T10:55
你直接更改syslog的設定比較快 把facility的level調高
Liam avatar
By Liam
at 2013-10-21T02:12
你覺得不需要記錄到log的就設定不要記錄
Yedda avatar
By Yedda
at 2013-10-24T19:24
或是把不同的訊息記錄丟到不同的log檔
Kama avatar
By Kama
at 2013-10-27T23:20
你這樣設定排程cat來cp去的 是在浪費系統資源
Blanche avatar
By Blanche
at 2013-10-29T03:47
sed -n '1~100p' ?
Daniel avatar
By Daniel
at 2013-10-31T16:23
按你的描述, 似乎只要記錄 Test_log1 的第一筆, 供下次檢查,
就可以知道是不是新的 Test_log1 ...
Zanna avatar
By Zanna
at 2013-11-01T23:08
也就是說, 若可等 Test_log 被轉存到 Test_log1 後再來處理,
那問題應該就簡單許多了吧 ??
Anonymous avatar
By Anonymous
at 2013-11-05T09:04
sed -n '1~100p' 只會擷取前一百行..和我需求不同
James avatar
By James
at 2013-11-09T17:58
可等 Test_log 被轉存到 Test_log1 後再來處理...感謝提醒
這部分應該是比較簡單...只是我還是要用到cp和cat才能將
Skylar DavisLinda avatar
By Skylar DavisLinda
at 2013-11-12T16:24
Test_log1存進去Test_long_log
Erin avatar
By Erin
at 2013-11-13T10:04
awk '( NR%100==0 ){print $0}' Test_log1
Sarah avatar
By Sarah
at 2013-11-15T12:24
while true; do tail -1 Test_log; sleep 3600; done
Belly avatar
By Belly
at 2013-11-19T06:15
鬼遮眼. 不用{print $0}的...
Blanche avatar
By Blanche
at 2013-11-21T01:41
awk '( NR%100==0 )' Test_log1 就好了
Doris avatar
By Doris
at 2013-11-22T06:47
1~100的思意和你相的不一樣喔... 那是sed address init~step
Ula avatar
By Ula
at 2013-11-24T01:03
sed -n '1~100p' Test_log1 >>Test_long_log
Poppy avatar
By Poppy
at 2013-11-26T08:04
sed -n '1,100p' 才是前一百行.
Poppy avatar
By Poppy
at 2013-11-30T18:17
sed -n '1~100p' 是每隔一百行, 從第一行開始.
Edward Lewis avatar
By Edward Lewis
at 2013-12-02T05:19
是說如果都在linux上了,可以用inotify()去看檔案有沒有被動到
Caroline avatar
By Caroline
at 2013-12-03T18:26
若要用 inotify() 大概就要移駕 LinuxDev 板了 :P
Susan avatar
By Susan
at 2013-12-07T23:12
翻回去忽然看到這句話:
Sierra Rose avatar
By Sierra Rose
at 2013-12-11T00:25
因為這些sensor資料,我大約每個小時只需要一筆即可...
Jacob avatar
By Jacob
at 2013-12-13T23:20
意思就是, 其實只要一小時跑一次 cron job
Andy avatar
By Andy
at 2013-12-18T17:48
而 cron job 就只要用 tail -1 抓最後一筆 Test_log 即可.
Joseph avatar
By Joseph
at 2013-12-23T00:41
tail -1 Test_log >> Test_long_log
Daph Bay avatar
By Daph Bay
at 2013-12-23T17:01
頂多, 加一點檢查, 看 Test_long_log 和 Test_log 的最後一行
如果相同, 就不要 append 到 Test_long_log.
Elvira avatar
By Elvira
at 2013-12-24T21:33
咦, 原來11樓r大已寫了 tail, 只是我被那句 鬼遮眼 也給遮了:P
Selena avatar
By Selena
at 2013-12-25T11:10
啊, 更上面其實還有6樓... 所以是 "編輯" 過後的11樓.
Ula avatar
By Ula
at 2013-12-26T08:03
謝謝各位給我這些想法,等一下就試試
David avatar
By David
at 2013-12-26T17:08
sed -n '1~100p’ 我電腦認不得1~100p意思
Brianna avatar
By Brianna
at 2013-12-30T00:21
但每小時tail一次的方法可行,謝謝
Elizabeth avatar
By Elizabeth
at 2013-12-31T03:48
'1~100p'不認得? sed --version 或 sed -V 看一下是什麼版本?

外接硬碟(ext4)的檔案權限

Suhail Hany avatar
By Suhail Hany
at 2013-10-15T19:07
假設我將 Ubuntu 1204 安裝在筆電上 root id 設定為: jack1204 pw 為: 1204 然後我買了一個外接硬碟(備份用) 全部 format 成 ext4 的格式 則剛格式化完的這個外接硬碟的 owner 會是 root 如果半年後 Ubuntu 發表 1210 我將 Ubunt ...

限制只有部分USER能從外部連線?

Joseph avatar
By Joseph
at 2013-10-15T16:25
※ 引述《chang0206 (Eric Chang)》之銘言: : 因為在大陸有幾台MAIL SERVER,每天都有成千上萬筆的 POP3 auth failed紀錄 : 本來是為了員工出差還能收發信件的關係,所以才開放外部連線 : (不考慮WEBMAIL,因為那邊的大頭不會用) : 但是也的確發生過幾次被 ...

syslog-ng怎麼過濾儲存非本機的Log

Harry avatar
By Harry
at 2013-10-15T15:12
各位前輩大家好 小弟公司有需要使用到syslog-ng來收集log 但目前的問題在於要將外部的log寫到一個檔案裡 不知道要怎麼編輯Config檔才不會讓本機的Log也寫進去 PS.外部為不特定IP 以下是syslog-ng.conf內容, 但看來還是會有本機的LOG寫進去 source src ...

apt-get安裝紀錄 以及 分割磁碟

Ethan avatar
By Ethan
at 2013-10-15T15:11
請問有辦法查到電腦使用apt-get install XXXX的紀錄嗎? 由於我的電腦安裝了很多XXXXX ,希望可以找到歷史紀錄, 這樣重灌後就可以方便安裝。 另外, 請問有辦法可以在不重灌的情況下重新分割磁碟嗎? 因為當初安裝Ubuntu給的boot空間太少,如今想多給他一些空間。 感謝 ...

位址 0xOO3 0xOB

Regina avatar
By Regina
at 2013-10-15T14:37
大家好, 工作需求:用Slitaz1.0 (Kernel 2.6.24.2) 抓到 RS232 擴充板(8 Port)。 我的擴充版是走ISA介面, 網路搜尋的結果是說先用 pnpdump 檢測電腦的ISA設備, 我的檢測結果為:http://ideone.com/7KYpez 它檢測的位址都是0x ...