Ⅰ linux腳本時間變數調用
你的變數定義格式有誤,變數調用系統命令時的格式:
TIME=$(date-d'1dayago'"+%Y%m%d")
或
TIME=`date-d'1dayago'"+%Y%m%d"`
#推薦使用第一種方式,看起來比較直觀也容易避免一些問題
完整的腳本如下:
在/root/目錄下創建名為 tar_log.sh的sh文件
#!/bin/bash
TIME=$(date-d'1dayago'"+%Y%m%d")
logdir="#日誌存放位置"
cd$logdir/
tar-zcfip-${TIME}.tar.gzip-${TIME}.txt
crontab 設置如下:
0000***/bin/bash/root/tar_log.sh
Ⅱ linux下怎麼定時執行腳本
配置定時任務或者說計劃任務,設定在你需要的時間執行腳本
寫好腳本,再通過crontab -e設置定時任務,然後通過crontab -l查看定時任務。
Ⅲ 求:linux 監控shell腳本運行時間
你的意思是某個進程不能不能超過5分鍾,否則觸發某個事件比如發送郵件或簡訊?
如果是這樣,腳本很好控制
直接在運行前記錄一個時間,然後創建一個lock文件
如果腳本完成,刪除pid
再sleep 300秒後判斷lock文件是否存在,如果不存在,退出,如果存在,報警,退出。
Ⅳ 在linux下怎麼讓一個腳本定時運行
Linux中,周期執行的任務一般由cron這個守護進程來處理 ps -ef | grep cron
cron讀取一個或多個配置文件,這些配置文件中包含了命令行及其調用時間。
cron的配置文件稱為「crontab」,是「cron table」的簡寫。
Ⅳ linux中怎麼讓一個shell腳本分別在凌晨00點和中午12點運行一次
linux中有計劃任務服務
有經驗的系統運維工程師能夠讓系統自動化運行,無需人工的干預就可以讓各個服務、命令在指定的時間段運行、停止。
了解計劃任務:http://www.linuxprobe.com/chapter-04.html#44
實際上這些操作都是由系統的計劃任務功能完成的,而計劃任務又有「一次性」與「長期性」之分,可以理解為:
一次性計劃任務:今晚11點30分開啟網站服務(例如新網站的公測)
長期性計劃任務:每周1、3、5的凌晨3點25分將/home/wwwroot目錄打包備份為backup.tar.gz
先來講一次性任務吧,它是由atd服務/進程來實現的,計劃的管理操作是"at"命令,具體的可用參數如下:
參數 作用
at <時間> 安排一次性任務
atq或at -l 查看任務列表
at -c 序號 預覽任務與設置環境
atrm 序號 刪除任務
一般用at命令創建計劃任務有互動式與非互動式兩種方法,先來看看交換式的方法,(輸完成後敲擊Ctrl+d來保存退出):
[root@linuxprobe ~]# at 23:30
at > systemctl start httpd
at >
job 3 at Mon Apr 27 23:30:00 2015
[root@linuxprobe ~]# atq
3 Mon Apr 27 23:30:00 2015 a root
直接用echo語句將要執行的命令傳送給at命令:
[root@linuxprobe ~]# echo "systemctl start httpd" | at 23:30
job 4 at Mon Apr 27 23:30:00 2015
[root@linuxprobe ~]# atq
3 Mon Apr 27 23:30:00 2015 a root
4 Mon Apr 27 23:30:00 2015 a root
刪除的時候只需要用atrm命令與任務編號就可以啦~
[root@linuxprobe ~]# atrm 3
[root@linuxprobe ~]# atrm 4
[root@linuxprobe ~]# atq
對於創建長期可循環的計劃任務,則要用到cron服務啦,具體使用方法如下:
創建、編輯計劃任務:crontab -e [-u 用戶名]
查看計劃任務:crontab -l [-u 用戶名]
刪除計劃任務:crontab -r [-u 用戶名]
其中在創建、編輯計劃任務時有個固定的格式,請讀者們一定要記住。
欄位 說明
分鍾 取值為從0到59之間的整數
小時 取值為從0到23之間的任意整數
日期 取值為1到31之間的任意整數
月份 取值為1到12之間的任意整數
星期 取值為0到7之間的任意整數,其中0與7均為星期日
命令 要執行的命令或程序腳本
需要用cron計劃任務實現的功能:"每周1、3、5的凌晨3點25分將/home/wwwroot目錄打包備份為backup.tar.gz"
編輯root用戶自己的計劃任務:
[root@linuxprobe ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
使用"crontab -l"命令查看計劃任務的內容:
[root@linuxprobe ~]# crontab -l
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot
如果想對某個用戶設置多個計劃任務,則可直接用"crontab -e"命令將命令逐條添加即可,讓計劃任務自動在每周1-5的凌晨1點打包網站目錄後自動清除/tmp目錄下的所有文件::
[root@linuxprobe ~]# crontab -e
crontab: installing new crontab
[root@linuxprobe ~]# crontab -l
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot
0 1* * 1-5 /usr/bin/rm -rf /tmp/*
Ⅵ 求教linux里邊腳本,實現:特定時間運行某條命令
使用crontab命令就可以,先寫一個命令復制的腳本:
1、vi cp.sh
2、cp.sh內容如下
#/bin/sh
cp /home/123.txt /root
reboot
3、把這個腳本放在/home/cp.sh
4、crontab -e 在裡面添加相應的命令如:
0 9 1 5 * /home/cp.sh
5、提交任務:crontab -u root /home/cp.sh (這里的root可以替換為要指執行任務的用戶)
Ⅶ linux系統如何讓一個腳本每十分鍾運行一次
crontab -e
*/10 * * * * shell
Ⅷ 請教Linux系統設置定時執行腳本問題crontab
跟據你的描述,感謝你的設置沒有問題,像是測試方法不合適。
crontab是每分鍾執行一次,所以不一定一到23點馬上執行。
你多等一分鍾看看。
Ⅸ Linux中用cron計劃定期執行腳本
1、date可以顯示年月日時分秒,舉個例子
today=`date +%Y%m%d%H%M%S`
echo ${today}
2、date +%d可以取日期
date +%d再-d tomorrow是想看第二天的日期。
3、你說的例子是如果月末最後一天就執行,因為月末數字不好判斷,所以用明天是1號判斷,當天肯定是月末。