發表文章

目前顯示的是有「linux」標籤的文章

Git 找回不在 tree 上的 commit

 Git 用了一陣子了,有一次在修正程式的時候,因為不是新增功能,所以會直接把調整完的程式直接 git commit --amend 合併到我要修正的 commit 中。 這樣程式就會被我蓋掉了,有一天就是很剛好的恍神了一下,在不對的分支,改了程式,也 git commit --amend 了,這時候我發現了神奇的指令就是: git reflog 相當於 linux histroy 指令一樣記錄歷史,下完指令我就可以看到 --amend 前的 commit hash code 了 這時候我如果要回到 --amend 前的 commit 下: git reset --hard <commit hash code>  如此一來就可以如標題找回不在 tree 上的 commit 了~ 參考官方文件: https://git-scm.com/docs/git-reflog

Log查詢指令快速上手

通常Linux Server 只有 Terminal 視窗的時候,這時候就需要善用指令快速找到相關的Log。 實際情境是發現遭到駭客掃描,所以進行LOG查找確認。 這邊以 Apache Web Server Log 為例:  //尋找 access.log.4.gz 檔含有 '26/Jul/2021:00:23' 字串的 log zgrep '26/Jul/2021:00:23' access.log.4.gz //尋找當前目錄的所有壓縮檔案含有 '26/Jul/2021:00:23' 字串的 log zgrep '26/Jul/2021:00:23' * //尋找開頭為 access.log 的所有壓縮檔案含有"非" '52.xx.xx.92' 字串的 log zgrep -v '52.xx.xx.92' access.log* //尋找開頭為 access.log 的所有壓縮檔案含有"非" '52.xx.xx.92' 且含不分大小寫 'phpmyadmin' 字串的 log zgrep -v '52.xx.xx.92' access.log* | grep -i 'phpmyadmin' //尋找開頭為 access.log 的所有壓縮檔案含有"非" '52.xx.xx.92' 且含"非" '200' 字串的 log zgrep -v '52.xx.xx.92' access.log* | grep -v '200'