crontab定時任務打包備份文件並刪除過期文件


Crontab 示例,最后這里要寫成shell腳本定時運行

 

30 17 * * * cp -rf /usr/local/tomcat9-jforum/tomcat/logs/catalina.out  /usr/local/tomcat9-jforum/logs


Crontab歸結為以下幾點特性:
1.     Crontab約束
2.      Crontab命令
3.      Crontab文件語法
4.      Crontab示例
5.      Crontab環境設置
6.     郵件
7.     日志文件
8.     其它
1.     Crontab約束
當用戶名記錄在文件/usr/lib/cron/cron.allow時,該用戶的crontab有效。當/usr/lib/cron/cron.allow文件不存在時,用戶名沒被記錄在/usr/lib/cron/cron.deny文件中,該用戶的crontab也有效。當只存在/usr/lib/cron/cron.deny且為空時,所有的用戶都可使用crontab。
當前兩個文件都不存在時,只有root用戶可以使用crontab。Deny或allow記錄以每行一個用戶名的形式記錄信息
2.     Crontab 命令
export EDITOR=vi ;為crontab文件指定一個編輯器。 
crontab -e  編輯該用戶的crontab,當指定crontab 不存在時新建。  
crontab -l  列出該用戶的crontab。  
crontab -r  刪除該用戶的crontab。  
crontab -u<用戶名稱>  指定要設定crontab的用戶名稱。
crontab –v 顯示上一次編輯的時間(只在某些操作系統上可用)
3.      Crontab 文件
Crontab語法一個crontab文件用五個段來定義:天,日期和時間,和一個要定期執行的命令代碼。
*    *  *  *   *  command to be executed
-    -   -   -    -
|    |    |    |    |
|    |    |    |    +----- day of week (0 - 6) (Sunday=0)
|    |    |    +------- month (1 - 12)
|    |    +--------- day of month (1 - 31)
|    +----------- hour (0 - 23)
+------------- min (0 - 59)
 
所有的值都必須在相應的范圍之內,否則視為無效。在填值區域內可以是*也可以是以”,”分隔的一組值。值可以是一個數據也可以是用連接符連起來的兩個數(表示范圍)。注:日期的格式可以是星期,也可以是一個月中的天。假如兩個都有值,則在這兩個時間都會執行。
4. Crontab 實例 

下面是crontab文件中的一行,意思是在每天下午6:30中刪除臨時文件(臨時文件存放在/home/someuser/tmp)。30    18    *    *    *        rm /home/someuser/tmp/*

 

shell示例:


vi test.sh


#!/bin/sh 
#對變量賦值: 
a="hello world" 
# 現在打印變量a的內容: 
echo "A is:" 
echo $a 


  在您的編輯器中輸入以上內容,然后將其保存為一個文件test.sh。之后執行chmod +x test.sh   執行權限
  使其可執行,最后輸入./test.sh執行該腳本。 
   這個腳本將會輸出: 
A is: 
 hello world 

 

所需語句測試

 #!/bin/sh 

FILENAME=`date +%Y%m%d`     ----------`' 靠,這是esc下面那個鍵,搞了半天才發現

 

tar -zcvf /backup/$FILENAME  /home/user  將home/user打包到/backup/$FILENAM   `date +%Y%m%d` 為日期
 
 
 tar -zcvf /usr/local/tomcat9-jforum/tomcat/webapps/jforum/images/avatar    打包
 
 30 17 * * * cp -rf /usr/local/tomcat9-jforum/tomcat/logs/catalina.out  /usr/local/tomcat9-jforum/logs/catalina.out   測試復制
 
 
 rm -f /usr/local/tomcat9-jforum/backup/`date +%y%m%d`_avatar.tar.gz  測試刪除
 
 rm -f /home/svnbak/`date -d '-5 days' +%Y%m%d`.tar.gz  測試刪除過期文件

 

 論壇用戶文件備份.sh

 
#/bin/sh 
#filebak 
#file executable: chmod 755 filebak 
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 
export PATH 
bakdir="/home/bbs/backup" 
filename1="`date +%Y%m%d`_avatar.tar.gz" 
filename2="`date +%Y%m%d`_postimages.tar.gz" 
filename3="`date +%Y%m%d`_upload.tar.gz" 
filename4="`date +%Y%m%d`_jforumLuceneIndex.tar.gz" 
if [ ! -x "$bakdir" ];then 
mkdir $bakdir 
fi 
cd $bakdir 
tar cvfz $filename1 /home/bbs/tomcat-bbs/webapps/jforum/images/avatar          打包
tar cvfz $filename2 /home/bbs/tomcat-bbs/webapps/jforum/images/postimages
tar cvfz $filename3 /home/bbs/tomcat-bbs/webapps/jforum/upload
tar cvfz $filename4 /home/bbs/tomcat-bbs/webapps/jforum/WEB-INF/jforumLuceneIndex
rm -f $bakdir/`date -d '-30 days' +%Y%m%d`_avatar.tar.gz               刪除過期
rm -f $bakdir/`date -d '-30 days' +%Y%m%d`_postimages.tar.gz
rm -f $bakdir/`date -d '-30 days' +%Y%m%d`_upload.tar.gz
rm -f $bakdir/`date -d '-30 days' +%Y%m%d`_jforumLuceneIndex.tar.gz


添加定時任務
crontab -e
crontab -l 查看


 25 14 * * * /home/bbs/bbsfilebackup
 
 :wq

此為每天下午兩點25執行一次

 

轉載自:http://blog.csdn.net/ws379374000/article/details/74009009


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM