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
