最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux系統(tǒng)crontab定時運(yùn)行shell腳本失敗的問題及解決

 更新時間:2023年04月07日 14:42:43   作者:我叫瘦企鵝  
這篇文章主要介紹了Linux系統(tǒng)crontab定時運(yùn)行shell腳本失敗的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

1.最近開始學(xué)習(xí)Linux系統(tǒng)使用

經(jīng)過一段時間學(xué)習(xí)終于學(xué)到了shell腳本,因為學(xué)的東西比較零散,突發(fā)奇想我學(xué)過了crontab定時任務(wù),今天也學(xué)了shell腳本的編寫,為何不組合一下,既能提升學(xué)習(xí)深度,又能鍛煉自學(xué)能力,何樂而不為呢?但是沒想到,我已步入了Linux的坑。

2.腳本倒是很簡單

因為剛學(xué)習(xí),寫的命令都很簡單,請各位大神不要笑我,我寫這篇博客目的一是為了記錄踩過的坑,加深映像,二是給和我一樣的新手提個醒,避免長時間陷入到坑里。

以下是我shell腳本的代碼

#!/bin/bash
date >> /myshell/date.log

 這個腳本的作用是每次運(yùn)行該腳本,將當(dāng)前時間累加寫入在/myshell/文件夾下的date.log文件中

首先我們要給這個腳本添加執(zhí)行權(quán)限用添加權(quán)限的命令就行了

chmod 777 time.sh

目前我遇到的問題是要執(zhí)行該腳本,目前只能在腳本所在目錄用./time.sh執(zhí)行。所以為了解決這個問題,我經(jīng)過思考和某度,找到了兩種方式讓我們的腳本在其他目錄直接使用time.sh命令都可以運(yùn)行腳本。

第一種

我們使用$PATH查看系統(tǒng)現(xiàn)有的環(huán)境變量目錄,也就是如果將我們的腳本放到這些任一個目錄中,就可以在其他目錄使用time.sh來運(yùn)行我們的腳本。

但是由于這些目錄存放的文件都是比較重要的。

或是系統(tǒng)文件,所以這種方式我覺得不太推薦,當(dāng)然,高手的話隨意就行,對于我這種初學(xué)者的話就盡量避開這種危險的東西。

第二種

我思考既然通過$PATH看到的這些目錄,把腳本放進(jìn)去就可以在其他地方運(yùn)行,那我們應(yīng)該也可以把我們寫的腳本所在的目錄添加到這個環(huán)境變量中,這樣就可以達(dá)到我們的目的,于是根據(jù)這個思路,我又進(jìn)行了某度,找到了解決方法。

可以用

vim /etc/profile

打開這個文件,在文件中添加如下代碼:

export PATH=/myshell:$PATH

添加后保存退出,這段代碼的原理就是在系統(tǒng)調(diào)用這個文件的時候,將環(huán)境變量PATH和我們需要自定義的目錄拼接起來重新生成的PATH環(huán)境變量替換以前的,達(dá)到我們需要設(shè)置自定義目錄的目的,要讓我們編輯的內(nèi)容生效,相當(dāng)于讓系統(tǒng)重新加載我們修改過的這個文件

用如下命令就行:

source /etc/profile

這樣,再用$PATH命令查看,就可以看到我們自定義的文件夾也到PATH這個環(huán)境變量的值中了。

這時候執(zhí)行一下命令time.sh發(fā)現(xiàn)/myshell目錄下就多了一個date.log文件了。

再其他目錄執(zhí)行time.sh命令,然后查看date.log命令,相應(yīng)時間也在文件中累加了。

原以為再用crontab把定時執(zhí)行任務(wù)設(shè)置好就大功告成,可是更大的坑才剛剛開始。

添加定時執(zhí)行任務(wù)

* 11 * * * time.sh

這個任務(wù)意思就是在十一點到十二點這個范圍內(nèi),每隔一分鐘執(zhí)行一下time.sh這個腳本。具體的語法不知道的初學(xué)者可以某度一下,資料很多的。

重啟一下crontab服務(wù)

service crond restart

然后使用命令實時查看date.log文件累加內(nèi)容的情況

tail -f date.log

等了很長時間,內(nèi)容都沒變,是定時任務(wù)沒執(zhí)行成功?還是腳本出錯了?

然后趕緊瘋狂某度一下crontab運(yùn)行的日志記錄文件存放位置,實時更新查看一下:

tail -f /var/log/cron

等了幾分鐘,發(fā)現(xiàn)每隔一分鐘定時任務(wù)有執(zhí)行記錄

97215982583c4a7ea3d14d8499219f55.png

但是查看date.log文件,發(fā)現(xiàn)內(nèi)容并沒有累加。

看來可能是crontab執(zhí)行時候出錯了。

于是修改定時任務(wù)語句,將定時任務(wù)執(zhí)行的錯誤信息也寫入到date.log文件中,看看報錯內(nèi)容是什么。

將定時任務(wù)修改為以下代碼

* 11 * * * time.sh >> /myshel/date.log 2>&1

等幾分鐘,查看date.log的內(nèi)容,顯示如下

4946ade9cf7e43089c750335a620efe1.png

沒有找到命令,可是我剛才不管是在文件目錄還是其他目錄都執(zhí)行成功腳本了啊,為什么crontab執(zhí)行還是報錯找不到腳本呢?

會不會是環(huán)境變量的問題呢,帶著猜想我再次進(jìn)行某度,過程很艱辛,最后算是證實我的猜想是對的,就是系統(tǒng)環(huán)境變量和crontab使用的環(huán)境變量不一樣導(dǎo)致的,其中過程由于篇幅有限,我就不細(xì)述了,直接說解決辦法

最后我找到兩解決辦法 

第一:定時任務(wù)語句中以root用戶來執(zhí)行,修改定時任務(wù)語句如下:

* 11 * * * su - root -c time.sh

而后發(fā)現(xiàn)腳本成功執(zhí)行了。

第二:定時任務(wù)腳本前面加上腳本所在目錄絕對路徑,定時任務(wù)語句修改為:

* 11 * * * /myshell/time.sh

再次觀察,腳本也成功執(zhí)行了。

當(dāng)然,我還查到了其他很多方法,時間有限,沒有一一測試,大家有興趣的話可以多試試其他方法。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • VMware虛擬機(jī)安裝Linux系統(tǒng)圖文教程

    VMware虛擬機(jī)安裝Linux系統(tǒng)圖文教程

    這篇文章主要為大家詳細(xì)介紹了VMware虛擬機(jī)安裝Linux系統(tǒng)教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Linux搭建Docker環(huán)境全過程

    Linux搭建Docker環(huán)境全過程

    這篇文章主要介紹了Linux搭建Docker環(huán)境全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Apache與Tomcat服務(wù)器整合的基本配置方法及概要說明

    Apache與Tomcat服務(wù)器整合的基本配置方法及概要說明

    網(wǎng)上的亂七八糟的資料太多了,很多都是自說自話,希望這篇文章能給大家?guī)硪恍┣逦乃悸贰?/div> 2010-12-12
  • Ubuntu 16.04與Apache虛擬主機(jī)配置的步驟詳解

    Ubuntu 16.04與Apache虛擬主機(jī)配置的步驟詳解

    這篇文章主要給大家介紹了關(guān)于Ubuntu 16.04與Apache虛擬主機(jī)配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用ubuntu16.04系統(tǒng)具有一定的參考學(xué)習(xí)價值,需要的朋友們來一起看看吧。
    2018-04-04
  • Ubuntu 20.04 CUDA&cuDNN安裝方法(圖文教程)

    Ubuntu 20.04 CUDA&cuDNN安裝方法(圖文教程)

    這篇文章主要介紹了Ubuntu 20.04 CUDA&cuDNN安裝方法(圖文教程),文中通過圖文代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • linux特殊字符及其作用大全

    linux特殊字符及其作用大全

    這篇文章主要介紹了linux特殊字符及其作用,文中給大家補(bǔ)充介紹了linux特殊字符用法,需要的朋友可以參考下
    2018-04-04
  • CentOS 7.x安裝部署Memcached服務(wù)器的詳細(xì)方法

    CentOS 7.x安裝部署Memcached服務(wù)器的詳細(xì)方法

    這篇文章主要介紹了CentOS 7.x安裝部署Memcached服務(wù)器的詳細(xì)步驟,需要的朋友可以參考下
    2018-01-01
  • apache虛擬主機(jī)配置的三種方式(小結(jié))

    apache虛擬主機(jī)配置的三種方式(小結(jié))

    本文主要介紹了apache虛擬主機(jī)配置的三種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 搭建linux服務(wù)器詳細(xì)教程

    搭建linux服務(wù)器詳細(xì)教程

    這篇文章主要介紹了搭建linux服務(wù)器詳細(xì)教程,主要包括linux服務(wù)器的部署、配置和搭建步驟,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • Linux內(nèi)核如何輸出中文字符的方法示例

    Linux內(nèi)核如何輸出中文字符的方法示例

    這篇文章主要介紹了Linux內(nèi)核如何輸出中文字符的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評論

波密县| 商都县| 威海市| 东安县| 盱眙县| 合肥市| 庆安县| 南岸区| 泰兴市| 靖边县| 合水县| 桑植县| 利川市| 宜兴市| 乌鲁木齐县| 耿马| 铁力市| 新蔡县| 新平| 云安县| 舟山市| 高雄市| 茌平县| 墨江| 三门峡市| 保山市| 东台市| 榆树市| 九寨沟县| 木兰县| 丹棱县| 平遥县| 阿荣旗| 通州区| 龙南县| 罗山县| 道孚县| 称多县| 镇沅| 张家口市| 和田县|