備份和清除的shell腳本

前些天領導找我說系統裏沒有對日誌進行自動定期壓縮轉存清理工具,現在只能手動進行處理。然後這個任務分配給我了。壓縮指打tar包,轉存換一個目錄備份,清楚是刪除。只能寫shell腳本加crontab命令(用於設置週期性被執行的指令)。

創建一個名爲backup.sh的文件夾,上代碼:

#!/bin/bash
#author:bs
#data:20190309
#description: 日誌定期壓縮轉存、清理
#version:v0.1

#創建轉存日誌目錄
mkdir -p /backup/backup_log
#壓縮和轉存日誌,轉存路徑上方以創建好,壓縮日誌名稱是buckup_log_加系統當前時間年月日.tar.gz
cd /translog/
tar zcvf /backup/backup_log/buckup_log_`date +%Y%m%d%H`.tar.gz source/
#清理日誌
cd source/
rm -rf *
#增加壓縮日誌的讀和執行權限
cd /backup/backup_log/
chmod u=rx buckup_log_`date +%Y%m%d%H`.tar.gz

其他系統的日誌也存放在此目錄,如果日誌全部刪除,其他系統出現問題沒有日誌可查看。並且自己系統日誌也無法查看,所以要保留系統前7天的日誌和其他系統的日誌。所以我對shell腳本進行修改。需要查看請自行下載

設置執行週期 crontab

直接用crontab命令編輯,以下是這個命令的一些參數與說明:

crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
crontab -l //列出某個用戶cron服務的詳細內容
crontab -r //刪除某個用戶的cron服務
crontab -e //編輯某個用戶的cron服務

基本格式 :
*  *  *  *  *  command
分 時 日 月 周 命令

第1列表示分鐘0~59 每分鐘用*或者 */1表示
第2列表示小時0~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令

01 * * * * root run-parts /etc/cron.hourly //每小時執行/etc/cron.hourly內的腳本
02 4 * * * root run-parts /etc/cron.daily //每天執行/etc/cron.daily內的腳本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期執行/etc/cron.weekly內的腳本
42 4 1 * * root run-parts /etc/cron.monthly //每月去執行/etc/cron.monthly內的腳本

注意"run-parts"這個參數了,如果去掉這個參數的話,後面就可以寫要運行的某個腳本名,而不是文件夾名了。

設置每月1號凌晨零點開始執行

0 0 1 * * /腳本的存放路徑/腳本名稱.sh

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章