iT邦幫忙

0

關於Linux CentOS 7 LOG打包並壓縮產生檔名 (感謝weiclin 協助解決)

  • 分享至 

  • xImage

小弟研究一整天了,單獨打包跟壓縮都沒問題

但是,不知道如何判斷要如何將資料夾內數個帶有連續日期txt檔案
打包至同一個檔案內

意思是說,資料夾內有
scott.log.2019-01-01-01
scott.log.2019-01-01-02
scott.log.2019-01-01-03
然後打包至 scott.log.2019-01-01
並壓縮成 scott.log.2019-01-01.gz

附上我參考網路上後修改的設定檔

#!/bin/bash
date="$(date -d '1 days ago' +"%Y-%m-%d")"

#echo $date
sfs_dir=/root/scott

find $sfs_dir/*.$date* -type f | xargs gzip   #壓縮

mv $sfs_dir/*.gz $sfs_dir/old-logs/    #將壓縮檔搬至old-Logs

因為已經從早上研究到現在了,目前還只會使用指令,而對指令仍一知半解

看更多先前的討論...收起先前的討論...
weiclin iT邦高手 4 級 ‧ 2019-01-17 17:20:54 檢舉
用 tar
踏雪尋梅 iT邦研究生 5 級 ‧ 2019-01-17 17:23:58 檢舉
主要是我不會讓它自動產生一個日期資料夾

我有參考到
find $sfs_dir/*.$date* -type f > $sfs_dir/gzip.log_$date

但它產出來是txt檔,而且這不是打包,是直接創建一個自動帶有日期的txt
踏雪尋梅 iT邦研究生 5 級 ‧ 2019-01-17 17:27:01 檢舉
恩 ...
weiclin iT邦高手 4 級 ‧ 2019-01-17 18:00:36 檢舉
你不是日期存成變數了嗎, 這樣就好了啊:
tar cvfz scott.log.${date}.tgz scott.log.${date}*
踏雪尋梅 iT邦研究生 5 級 ‧ 2019-01-18 09:01:18 檢舉
恩,剛睡醒腦袋有點混亂,我研究了半小時,沒啥進展,我多嘗試幾次看看好了@@
踏雪尋梅 iT邦研究生 5 級 ‧ 2019-01-18 10:21:11 檢舉
謝謝你的方法,我不但理解了變數的用法也完成了打包及壓縮的過程,但我現在在思考
「tar cvfz scott.log.${date}.gz /root/scott/old-logs scott.log.${date}*

這個方式會將 /root/scott/old-logs 裡面的內容全部打包起來並壓縮

但解縮後,會把解縮檔案產在新增/root/scott/old-logs的路徑裡面

我又嘗試了一個鐘頭,看有沒有辦法解壓縮在我指定資料夾就好,別那麼多層

雖然學習應當自己解決,但我明白這是很簡單的東西,我卡了一個小時實在不太應該,所以不好意思地想問問,也非常感謝您
踏雪尋梅 iT邦研究生 5 級 ‧ 2019-01-18 10:22:25 檢舉
我大多都參考這個網站學習

https://dywang.csie.cyut.edu.tw/dywang/linuxSystem/node39.html

http://note.drx.tw/2008/04/command.html#top

http://project.zhps.tp.edu.tw/ethan/2009/09/compress/

關於這件事情的部分,是都參考這些網站
weiclin iT邦高手 4 級 ‧ 2019-01-18 10:52:08 檢舉
tar 會保留路徑, 所以你想要解到目前的資料夾, 你在壓縮時要先:
cd /root/scott/old-logs
tar cvfz scott.log.${date}.tgz scott.log.${date}*
之後你再解壓縮試試看
還有 tar 加 z 壓縮的話副檔名是 .tar.gz 或是 .tgz, 不是 .gz
踏雪尋梅 iT邦研究生 5 級 ‧ 2019-01-18 10:55:46 檢舉
我後來也發現這個問題了,原來是我觀念混淆了

我也是用同樣的方式解決,謝謝你哦

關於 cvfz ,我會再去細心留意他們的用意,謝謝你提醒我
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答