成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux下設置定期執行腳本

系統 Linux
在Linux下,經常需要定期的執行一些腳本從而來實現一些功能,我們用crontab來實現定期的執行腳本這個功能,下面就介紹一下crontab的使用。

下面針對的是非ubuntu環境,會在文章末尾介紹ubuntu的一些區別。

在Linux下,經常需要定期的執行一些腳本從而來實現一些功能。

在Linux下我們用crontab來實現定期的執行腳本這個功能,下面就介紹一下crontab的使用。以及我遇到的一些問題

一. crontab的使用說明

1. crond 是linux用來定期執行程序的命令。當安裝完成操作系統之后,默認便會啟動此任務調度命令。crond命令每分鐘會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。而linux任務調度的工作主要分為以下兩類

a. 系統執行的工作,比如垃圾清理,備份

b. 用戶自定義的工作,比如每5分鐘執行一次腳本

2. crontab是UNIX系統下定期執行任務的觸發器。用戶把要定期執行的任務記錄在這個文件下面,然后crond定期的去檢查這個定期執行列表,有要執行的工作時便自動執行。

通過man crontab可以查看到下面的信息

a. /etc/crond.allow 表示的是允許使用crontab的用戶列表

b. /etc/crond.deny 表示的是不允許使用crontab的用戶列表

3. crontab常用的幾個命令格式

crontab -l //顯示用戶的crontab文件的內容

crontab -e //編輯用戶的crontab文件的內容

crontab -r //刪除用戶的crontab文件

4. crontab文件的基本格式如下所示

*    *     *    *    *       command

分   時   天   月   周         命令

每列表示意義

a. ***個*表示的是分鐘1~59分鐘,默認*表示的是每分鐘都執行,x-y表示的是x~y這段每分鐘都執行,*/n表示每n分鐘執行一次,x,y,z表示的是x,y,z分鐘都執行。

b. 第二個*表示的是小時1~23小時,默認*表示的是每小時都執行,x-y表示的是x~y這段每小時都執行,*/n表示每n小時執行一次,x,y,z表示的是x,y,z小時都執行。

c. 第三個*表示的是天1~31,默認*表示的是每天都執行,x-y表示的是x~y這段每天都執行,*/n表示每n天執行一次,x,y,z表示的是x,y,z天都執行。

d. 第四個*表示的是月1~12,默認*表示的是每個月都執行,x-y表示的是x~y這個段每月都執行,*/n表示每n分鐘執行一次,x,y,z表示的是x,y,z天都執行。

e. 第五個*表示的是周0~6(0表示周天),默認周一~周天都執行,x-y表示周x~周y每天都執行。

5. crontab文件的一些例子

a. 30 21 * * * /usr/local/etc/rc.d/lighttpd restart //表示每天21:30重啟apache

b. 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart //表示每月1,10,22號4:45重啟apache

c. 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart //表示每天18 : 00至23 : 00之間每隔30分鐘重啟apache

d. * */1 * * * /usr/local/etc/rc.d/lighttpd restart //表示每一小時重啟apache

e. */5 * * * * /usr/local/etc/rc.d/lighttpd restart //表示每5分鐘重啟apache

二. 具體例子

1. 首先我在/home/chenguolin/tmp/ 創建一個shell腳本名為s.sh。注意腳本內部的路徑使用絕對路徑。

這個腳本的功能就是把當前的日期輸出重定向到當前目錄下的out文件

2. 然后設置每2分鐘執行一次這個腳本,>/dev/null 2>&1。原因是因為系統會在每次執行完任務之后就發一個郵件告訴用戶,通過這個操作可以把信息全部重定向到/dev/null中,/dev/null這個文件類似回收站過一段時間系統自動清理。

*/2 * * * * sh /home/chenguolin/tmp/s.sh >/dev/null 2>&1

然后發現過了n個2分鐘,out文件根本就沒有輸出。 

3. 在谷歌/百度無果之后,問了同事,得到了原因是因為crontab可能有時候沒有辦法執行用戶家目錄下面的兩個文件,分別是.bashrc和.bash_profile

這兩個文件的作用如下

.bashrc作用是用于你的bash shell的bash信息,當登錄時及每次打開新的shell時,該文件被讀取;

.bash_profile作用是每個用戶都可使用該文件輸入專用于自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!默認情況下,他設置一些環境變量,執行用戶的.bashrc文件,

因此我們要手動在crontab文件中添加source /home/chenguolin/.bashrc && source /home/chenguolin/.bash_profile

source的作用是當前bash環境下執行命令,而scripts是啟動一個子shell來執行命令。這樣如果把設置環境變量(或alias等等)的命令寫進scripts中,就只會影響子shell,無法改變當前的BASH,所以通過文件(命令列)設置環境變量時,要用source 命令。

因此crontab文件中變成

*/2 * * * * source && /home/chenguolin/.bashrc && source /home/chenguolin/.bash_profile && sh /home/chenguolin/tmp/s.sh >/dev/null 2>&1

4. 發現可以定時的執行腳本。

如果還不行,那只能通過查找log來查錯。非ubuntu的Linux crond的日志文件保存在/var/log下

三. ubuntu下使用crontab定時執行腳本

注意下幾個問題以

1. ubuntu下crontab的服務程序是cron,并且默認cron服務的log是沒有的,我們必須手動開啟

a. sudo vim /etc/rsyslog.d/50-default.conf

b. 找到cron.*那一行把注釋去掉

c. 然后重啟cron服務 sudo service cron restart

d. 這樣就可以在/var/log里面發現有cron的日志文件了,我們就可以通過查看日志文件找到問題所在

2. ubuntu下,用戶家目錄下是沒有.bash_profile文件的,并且會自動去執行.bashrc文件,只要寫成下面這樣即可

*/2 * * * * sh /home/chenguolin/tmp/s.sh >/dev/null 2>&1

原文鏈接:http://blog.csdn.net/chenguolinblog/article/details/37936865

責任編輯:牛小雨 來源: csdn
相關推薦

2020-08-11 18:20:42

Linux運行腳本開機啟動

2020-06-11 07:57:48

Linux腳本數據

2011-08-08 10:10:21

Linux備份

2023-03-02 23:45:23

linux開機啟動Windows

2011-08-29 16:19:01

UbuntuRamDisk

2018-03-02 13:28:19

Linux開機自啟動

2010-07-02 09:03:52

SQL server定

2016-09-21 08:54:33

2010-02-23 13:24:33

2009-07-06 17:00:17

Ubuntu Linushorewall防火墻

2009-11-11 10:26:02

LinuxOracle監聽自啟動

2009-06-29 08:38:14

Linux操作系統

2009-07-03 06:55:33

Linux

2010-09-14 11:33:39

Linux下設置tft

2010-07-01 15:56:34

SQL Server數

2010-01-13 11:05:24

2009-12-07 09:53:27

ubuntu/root

2021-04-24 08:54:27

虛擬機Kubernetes節點

2010-09-16 15:44:12

Java環境變量

2011-02-21 10:08:36

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品一二区 | 国产免费av在线 | 日韩在线欧美 | 欧美一区二区三区在线播放 | 99精品视频免费观看 | 成人三区| 夜夜爽99久久国产综合精品女不卡 | 欧美日韩一区二区三区不卡视频 | 国产精品入口麻豆www | 国产高清在线 | 日本三级全黄三级三级三级口周 | 欧美一区二区在线免费观看 | 亚洲精品乱码久久久久久9色 | 亚洲精品国产一区 | 香蕉久久久| 欧美久| av中文天堂 | 久久国产高清视频 | 欧美成人精品一区二区男人看 | 亚洲精品免费视频 | 亚洲人成人一区二区在线观看 | 国产乱码一二三区精品 | 99资源| 一本色道精品久久一区二区三区 | 欧美日韩国产精品一区 | 久草成人 | 亚洲综合免费 | 亚洲人人 | 伊人成人免费视频 | 黄色成人免费看 | 免费日韩av网站 | 亚洲一区久久 | 在线日韩 | 精品国产乱码久久久久久图片 | 一级免费黄色 | 一级片片 | 日日干日日操 | 97视频成人 | 欧美国产日韩在线观看 | 午夜精品一区二区三区免费视频 | 一区二区在线 |