Alan's BLOG
  • archives
  • posts
  • tags
  • about
  • quote
  • search

Linux 同步檔案[rsync]

👨‍💻簡介 rsync 用途:用來複製與備份檔案的工具,它可以處理本機或遠端的檔案同步工作 語法 rsync [OPTIONS] src [dest/user@host:dest] 參數 參數 說明 -v, –verbose verbose 模式,輸出比較詳細的訊息 -r, –recursive 遞迴(recursive)備份所有子目錄下的目錄與檔案 -a, –archive 封裝備份模式,相當於 -rlptgoD,遞迴備份所有子目錄下的目錄與檔案,保留連結檔、檔案的擁有者、群組、權限以及時間戳記 -z, –compress 啟用壓縮,可減少網路傳輸資料量 -h, –human-readable 將數字以比較容易閱讀的格式輸出 -q, –quiet 與 -v 相反,安靜模式,略過正常資訊,僅顯示錯誤訊息 -l, –links 複製連結而不是連結內容 -g, –group 保留檔案的原始群組狀態(權限不足則無法繼承) -o, –owner 保留檔案的原始擁有者(權限不足則無法繼承) -t,–times 保留檔案的原始時間參數 -e 使用的通道協定,例如使用 ssh 通道,則 -e ssh -u, –update 在備份時會略過所有已經存在於目的端,且文件時間比要備份的檔案為新的檔案 -p, –perms 表示要保留檔案的權限資訊 -D 表示要保留設備檔案資訊 –delete 刪除來源端已經不存在但在目的端存在的檔案 –force 當目的端的目錄被覆蓋時,就強制先刪除該目錄 –bwlimit=RATE 限制資料傳輸速度上限 –progress 即時顯示傳輸進度 –exclude=PATTERN 排除符合匹配的檔案 –include=PATTERN 只備份符合匹配的檔案 –min-size=SIZE 指定備份檔案的最小值 –max-size=SIZE 指定備份檔案的最大值 –remove-source-files 自動刪除來源檔案 -n, –dry-run debug模式,測試rsync餐數 –existing 只更新既有的檔案,排除新增的檔案 -i, –itemize-changes 查看個別檔案的變動資訊 基本操作 複製本地端檔案或目錄 rsync -avh mylog....

2022-11-08 · 2 min · 224 words · Alan

Linux 查找文件[find]

👨‍💻簡介 find 用途:在目錄中找尋文件 語法 find path [OPTIONS] 參數(常用) 參數 說明 -mount, -xdev 只檢查和指定目錄在同一個文件系統下的文件,避免列出其它文件系統中的文件 -amin n 指定檔案的最後存取時間,單位為分鐘,在過去n分鐘內被存取過 -anewer file 比文件file更晚被存取過的文件 -atime n 指定檔案的最後存取時間(access time),單位為天 -cmin n 指定檔案狀態相關資訊最後修改的時間,單位為分鐘 -cnewer file 比文件file更新的文件 -ctime n 指定檔案狀態相關資訊最後修改的時間(status time),單位為天 -mtime n 指定檔案的最後修改時間(modification time),單位為天 -mmin n 指定檔案的最後修改時間,單位為分鐘 -empty 搜尋空檔案 -ipath p, -path p 路徑名稱符合 p 的文件,ipath 會忽略大小寫 -name name, -iname name 文件名稱符合 name 的文件。 iname 會忽略大小寫 -size n 指定檔案的大小 -type c 指定檔案的類型 -perm 指定檔案的權限 -user 指定檔案擁有者 -group 指定檔案的群組 -exec 對使用find的搜尋結果執行特定指令 基本操作 指定檔名搜尋 # 搜尋在當前目錄底下,檔名為file....

2022-11-07 · 2 min · 314 words · Alan

Linux 日誌管理[logrotate]

👨‍💻簡介 logrotate 用途:日誌文件管理工具,用於切割日誌,壓縮轉存,刪除舊的日誌文件,並創建新的日誌文件 預設配置文件位置: /etc/logrotate.conf /etc/logrotate.d 運行機制 logrotate是透過cron來運行的,透過/etc/cron.daily/logrotate這腳本,如要查看cron.daily運行方式,可查看/etc/anacrontab # /etc/anacrontab: configuration file for anacron # See anacron(8) and anacrontab(5) for details. SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs RANDOM_DELAY=45 # the jobs will be started during the following hours only START_HOURS_RANGE=3-22 #period in days delay in minutes job-identifier command 1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron....

2022-11-03 · 2 min · 382 words · Alan

Linux 擷取部分字元[cut]

👨‍💻簡介 cut 用途:文字處理工具,可以將每一行文字的部分字元或是欄位擷取出來 語法 cut [OPTIONS] FILE 參數 參數 說明 -b, –bytes=LIST 擷取指定的範圍,以 bytes 作為單位 -c, –characters=LIST 擷取指定的範圍,以字元數量作為單位 -d, –delimiter=DELIM 指定分隔字元,預設是用 tab 作為分隔 -f, –fields=LIST 輸出指定的範圍,這個是每行資料的第幾個欄位作為區分 -n with -b: don’t split multibyte characters –complement 排除未擷取的欄位 -s, –only-delimited 如果該行沒有分隔字元,不會顯示該行資料 –output-delimiter=字串 改變輸出欄位的分隔字元 基本操作 擷取字元 # 擷取從第二個字元到最後 cut -c 2- file # 擷取從開始到第二個字元 cut -c -2 file # 擷取第2-3,5-8,10-12個字元 cut -c 2-3,5-8,10-12 file 排除字元 # 排除2-5字元,其餘都擷取 cut -c 2-5 --complement 擷取欄位 # 將逗號當作分隔符,擷取第二個欄位 cut -d , -f 2 file # 將逗號當作分隔符,擷取第1-3個欄位以及第五個欄位 cut -d , -f 1-3,5 file 排除欄位 # 排除第二個欄位,擷取剩餘的欄位 cut -d , -f 2 --complement file 改變輸出欄位分隔字元 # 將逗號當作分隔符,擷取第1,3欄位並將分隔符從,改成: cut -d , -f 1,3 --output-delimiter=":" 組合技 # 找出所有python程式的PID與指令內容 ps aux | grep python | sed 's/\s\+/ /g' | cut -d ' ' -f 2,11- 參考資料 Linux 的 cut 擷取部份字元、欄位指令教學與常用範例整理 - G....

2022-11-03 · 1 min · 145 words · Alan

git-刪除遠程分支

刪除本地分支 先使用 git branch -a(all) 列出所有分支,再使用 -d(delete) 後面接著要刪除的分支名稱即可 git branch -a # *master # test # remote/origin/master # remote/origin/test git branch -d test # Deleted branch test (was ########). 刪除遠程分支 刪除遠程分支必須使用 git push 加上 --delete 參數,並且必須在push後加上 remote name git branch -a # *master # test # remote/origin/master # remote/origin/test git push origin --delete test # To <URL of your repository>.git # - [deleted] test 參考資料 How to delete remote branches in Git (educative....

2022-11-03 · 1 min · 73 words · Alan

python-installation

安裝環境 windows 10 python 3.8.0 安裝步驟 1.下載python 網址:Python 點擊Download 選擇windows的可執行安裝檔,目前大多都以64位元為主 2.安裝過程 3.檢查環境

2022-11-02 · 1 min · 12 words · Alan

Linux 複製檔案[cp]

👨‍💻簡介 cp(copy) 用途:複製檔案(copy)和目錄 語法 cp [OPTIONS] SOURCE DEST 參數 參數 說明 -a, –archive 效果同-dpR,保留連結、文件屬性,並複製目錄下的所有內容,通常在複製目錄時使用 –attributes-only 只複製文件的屬性,內容不複製 –backup[=CONTROL] 備份每個現有的目標文件 -b 不接受參數版的–backup –copy-contents 遞歸模式下複製特殊文件的內容 -d 複製時保留軟連結 -f, –force 強制覆蓋已經存在的目標文件,不會跳出提示 -i, –interactive 與-f選項相反,在覆蓋目標文件之前給出提示,要求用戶確認是否覆蓋,回答 y 時目標文件將被覆蓋。 -H 跟隨源文件命令行中顯式給出的符號鏈接 -l, –link 使用硬鏈接取代複製 -L, –dereference 總是跟隨源文件中的符號鏈接 -n, –no-clobber 不要覆寫已有的文件(覆蓋先前給出的 -i 選項) -P, –no-dereference 永遠不要跟隨源文件中的符號鏈接 -p 不接受參數版的–preserve –preserve[=ATTR_LIST] 除複製文件的內容外,還把修改時間和訪問權限也複製到新文件中。保留指定的屬性(默認:模式、從屬關係、時間戳),如果可能的話還有額外屬性:上下文、鏈接(links)、xattr、all –no-preserve=ATTR_LIST 不要保留指定的屬性 –parents 在目標目錄下使用完整的源文件名 -R, -r, –recursive 遞歸複製目錄 –reflink[=WHEN] 控制克隆/寫入時複製(CoW)副本。詳情見下文 –remove-destination 打開目的 –sparse=WHEN 控制稀疏文件的創建。詳情見下文 –strip-trailing-slashes 移除每個源文件參數後的任何末尾斜槓 -s, –symbolic-link 建立軟連結而不是複制 -S, –suffix=後置字串 覆蓋原本的備份後綴 -t, –target-directory=目錄 將所有源文件參數給出的內容複製到目標目錄中 -T, –no-target-directory 將目標文件當作普通文件對待(而不是目錄) -u, –update 僅在源文件比目標文件新,或者目標文件不存在的情況下複製 -v, –verbose 顯示覆蓋訊息 -x, –one-file-system 停留在當前文件系統中 -Z 將目標文件的 SELinux 安全上下文設置為默認類型 –context[=CTX] 類似-Z,或者如果給定了上下文(CTX)那麼將SELinux或者SMACK 安全上下文設置爲給定值 默認情況下,程序會使用一種粗糙的啓發式算法探測源文件是否是稀疏的,若判定爲稀疏,則目標文件也會以稀疏形式創建。這個行爲可以通過...

2022-11-01 · 1 min · 154 words · Alan

gitignore失效的解決辦法

因為git忽略的原則為之前沒有被追蹤的檔案,因此可能開發到一半才會需要新增gitignore來進行忽略,但是失效 解決的辦法為刪掉本地快取(改變成未被追蹤的狀態),接著在新增要忽略的檔案到gitignore裡 git rm -r --cached . git add . git commit -m "init gitignore"

2022-10-31 · 1 min · 15 words · Alan

Linux 修改權限[chmod]

👨‍💻簡介 chmod(change mode) 用途:控制用戶對文件的權限,linux 的文件權限分為三種身分,owner/group/others,而權限也分為三種,read/write/execute,權重如下表格 權限 權重 r 4 w 2 x 1 語法 chmod [OPTIONS] [mode] [檔案或目錄] 參數 參數 說明 -c, –changes 效果類似"-v"參數,但僅回報更改的部分。 -f, –silent, –quiet 不顯示錯誤資訊。 -v, –verbose 顯示指令執行過程。 –no-preserve-root 取消對 root 文件系統的保護 –preserve-root 保留對 root 文件系統的保護 –reference=RFILE 把指定文件或目錄的權限全部設成和參考文件或目錄的權限相同。 -R, –recursive 遞迴處理,將指定目錄下的所有檔及子目錄一併處理。 符號模式 who(用戶類型) 說明 u(user) 所有者 g(group) 所屬組 o(others) 其他用戶 a(all) 所有用戶,等於ugo operator 說明 + 新增權限 - 移除權限 = 設定權限 模式 說明 r 可讀權限 w 可寫權限 x 可執行權限 絕對模式 參數 權限 rwx 7 讀+寫+執行 rwx 6 讀+寫 rw- 5 讀+執行 r-x 4 只讀 r– 3 寫+執行 -wx 2 只寫 -w- 1 只執行 –x 0 無 — 基本操作 將檔案變成user可執行 假設原本檔案權限為-rw-rw-r--...

2022-10-30 · 1 min · 125 words · Alan

Hugo Setup

紀錄一下hugo的建置過程 1. 安裝hugo windows安裝 Chocolatey choco install hugo -confirm Scoop scoop install hugo macos安裝 brew install hugo linux安裝 sudo apt-get install hugo 2. 建立網站 hugo new site myblog -f yaml 3. 下載主題 git clone https://github.com/adityatelange/hugo-PaperMod themes/PaperMod --depth=1 4. 建立about, tags page 建立about page hugo new about.md 修改config檔 menu: main: - identifier: tags name: tags url: /tags/ weight: 1 - identifier: about name: about url: /about/ weight: 2 5. 依照需求美化版面 Hugo PaperMod 優化...

2022-10-30 · 1 min · 86 words · Alan
« Prev  Next  »
© 2024 艾倫的程式之旅 Powered by Hugo & PaperMod