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

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

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

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

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

2.腳本倒是很簡(jiǎn)單

因?yàn)閯倢W(xué)習(xí),寫的命令都很簡(jiǎn)單,請(qǐng)各位大神不要笑我,我寫這篇博客目的一是為了記錄踩過(guò)的坑,加深映像,二是給和我一樣的新手提個(gè)醒,避免長(zhǎng)時(shí)間陷入到坑里。

以下是我shell腳本的代碼

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

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

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

chmod 777 time.sh

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

第一種

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

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

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

第二種

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

可以用

vim /etc/profile

打開(kāi)這個(gè)文件,在文件中添加如下代碼:

export PATH=/myshell:$PATH

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

用如下命令就行:

source /etc/profile

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

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

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

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

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

* 11 * * * time.sh

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

重啟一下crontab服務(wù)

service crond restart

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

tail -f date.log

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

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

tail -f /var/log/cron

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

97215982583c4a7ea3d14d8499219f55.png

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

看來(lái)可能是crontab執(zhí)行時(shí)候出錯(cuò)了。

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

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

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

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

4946ade9cf7e43089c750335a620efe1.png

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

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

最后我找到兩解決辦法 

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

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

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

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

* 11 * * * /myshell/time.sh

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

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

總結(jié)

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

相關(guān)文章

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

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

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

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

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

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

    網(wǎng)上的亂七八糟的資料太多了,很多都是自說(shuō)自話,希望這篇文章能給大家?guī)?lái)一些清晰的思路。
    2010-12-12
  • Ubuntu 16.04與Apache虛擬主機(jī)配置的步驟詳解

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

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

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

    這篇文章主要介紹了Ubuntu 20.04 CUDA&cuDNN安裝方法(圖文教程),文中通過(guò)圖文代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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ī)配置的三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 搭建linux服務(wù)器詳細(xì)教程

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

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

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

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

最新評(píng)論

汉阴县| 吉隆县| 财经| 汝州市| 定日县| 玉林市| 綦江县| 大邑县| 合川市| 上虞市| 巴楚县| 随州市| 手游| 和硕县| 胶南市| 多伦县| 宁远县| 沧州市| 台州市| 内黄县| 温宿县| 深圳市| 皋兰县| 三江| 灵宝市| 黄大仙区| 南丹县| 驻马店市| 额敏县| 宣汉县| 宁乡县| 武汉市| 二手房| 彰化市| 区。| 沙雅县| 邛崃市| 高阳县| 巴彦县| 兴海县| 武汉市|