shell之備份日誌

2021-08-17 21:01:55 字數 1392 閱讀 3967

先介紹命令crontab

常用選項

-u:表示指定某個使用者,不加-u選項則為當前使用者

-e:表示指定任務計畫

-l:表示列出任務計畫

-r:表示刪除任務計畫

[root@localhost ~]# crontab -e

crontab: no changes made to crontab

#輸入如下內容:

02 * * * echo

'ok' > /root/cron.log

分 時 日 月 周

crontab -e實際上是開啟了/var/spool/cron/username檔案,但在編輯時必須使用crontab -e編輯

簡介

作為系統管理員,小樓收到乙個需求,需要每天備份系統當天的部分日誌檔案,日誌備份的需求描述如下:

為 shiyanlou 使用者新增計畫任務

每天凌晨2點的時候定時打包 /var/log 下的 dpkg.log,mysql.log,fontconfig.log 三個檔案到 /home/shiyanlou/backup/ 目錄

命名格式為 年-月-日.tar,比如今天是2023年10月23日,那麼檔名為2017-10-23.tar,若有重名則覆蓋

目標

為 shiyanlou 使用者新增計畫任務

計畫任務要執行的命令中不要使用額外的指令碼,直接執行相關命令

備份命令執行時需要將三個檔案打包成 tar 包,並儲存到 /home/shiyanlou/backup 目錄下

提示語

date

crontab

cp

知識點

linux計畫任務

linux檔案備份和打包

首先啟動cron並放在後台執行

sudo cron -f &

crontab -eu shiyanlou #新增任務

#在開啟的檔案中輸入

02 * * * tar -cf a.tar /var/log/dpkg.log /var/log/mysql.log /var/log/fontconfig;cp a.tar /home/shiyanlou/backup/$(date +\%y-\%m-\%d).tar

#儲存即可

注意

「 % 」 在 crontab 檔案中,有結束命令列、換行、重定向的作用,

前面加 」 \ 」 符號轉義,否則,

「 % 」 符號將執行其結束命令列或者換行的作用,

並且其後的內容會被做為標準輸入傳送給前面的命令。

shell指令碼 自動備份應用日誌

root deploy scripts cat logs bak v2.sh usr bin env bash description 查詢兩天前修改的應用日誌,打包備份之後後刪除 date 2019 06 15 載入系統函式 etc init.d functions 載入環境變數 export p...

shell程式設計 自動備份tomcat日誌詳解

每天凌晨一點,將tomcat中的catalina.out日誌壓縮並備份到目標資料夾中,以當天日期為格式,然後清空日誌。刪除超過15天的備份日誌,並將logs中的其他日誌檔案每7天清空一次 如 localhost.2018 09 21.log等 用date函式擷取當前時間日期 將logs中的catal...

shell 備份日誌 每三天備份一次

crontab實現不了每隔多少天備份 需要每天定時跑指令碼,自己判斷是否執行備份 bin bash day date d 當前天數 scripttime date y m d h m s 指令碼執行時間記錄 start date s 開始執行的時間戳 判斷當前天數是哪天 如果符合備份天數 就執行備份...