国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Crontab定時(shí)任務(wù)運(yùn)行Docker容器(Ubuntu 20)

這篇具有很好參考價(jià)值的文章主要介紹了Crontab定時(shí)任務(wù)運(yùn)行Docker容器(Ubuntu 20)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

對(duì)于一些離線預(yù)測任務(wù),或者D+1天的預(yù)測任務(wù),可以簡單地采用Crontab做定時(shí)調(diào)用項(xiàng)目代碼運(yùn)行項(xiàng)目

Crontab簡介:
Linux crontab命令常見于Unix和類Unix的操作系統(tǒng)之中,用于設(shè)置周期性被執(zhí)行的指令。該命令從標(biāo)準(zhǔn)輸入設(shè)備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執(zhí)行。通過 crontab 命令,用戶可以添加、修改、刪除和列出定時(shí)任務(wù),以實(shí)現(xiàn)自動(dòng)化執(zhí)行特定任務(wù)。

Crontab下載

sudo apt-get install cron

Docker鏡像
我們新建一個(gè)名為cron-test的容器,使用下面這個(gè)py代碼作為測試

import numpy as np

if __name__ == '__main__':
    x = np.empty([2,4])
    print(x)

容器運(yùn)行結(jié)果如下:
Crontab定時(shí)任務(wù)運(yùn)行Docker容器(Ubuntu 20),運(yùn)維,ubuntu,運(yùn)維,linux


使用shell腳本運(yùn)行容器
在當(dāng)前目錄下,終端執(zhí)行命令進(jìn)入shell腳本編輯

  1. 新建一個(gè)名為cron-test的shell腳本
touch cron-test.sh
  1. 終端運(yùn)行 vim cron-test.sh 編輯腳本,i進(jìn)入編輯,Esc退出編輯,shift+:wq!保存并退出
    注:#!/bin/bash 明確指定腳本使用 Bash 解釋器執(zhí)行,而 #!/bin/sh 使用系統(tǒng)默認(rèn)的Shell(可能是Bash或其他兼容的Shell)執(zhí)行。如果腳本依賴于特定的Bash功能,或者想確保在不同的系統(tǒng)上都使用Bash作為解釋器,那么使用 #!/bin/bash 是一個(gè)更安全的選擇。

在這里我的shell腳本如下:
Crontab定時(shí)任務(wù)運(yùn)行Docker容器(Ubuntu 20),運(yùn)維,ubuntu,運(yùn)維,linux

  1. 終端運(yùn)行命令執(zhí)行shell腳本
/home/licy/文檔/cron-test.sh

使用crontab設(shè)置定時(shí)任務(wù)運(yùn)行shell腳本
打開crontab編輯器

crontab -e

編寫定時(shí)任務(wù)命令
基本格式:分鐘 小時(shí) 一月的第幾天 月份 周幾 用戶名 要執(zhí)行的命令

Example of job definition:
.---------------- minute (0 - 59)
|  .------------- hour (0 - 23)
|  |  .---------- day of month (1 - 31)
|  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
|  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
|  |  |  |  |
*  *  *  *  * user-name command to be executed

例如我們想每分鐘運(yùn)行一次shell腳本,寫法如下

* * * * * /home/licy/文檔/cron-test.sh

然后保存crontab并退出

按下Ctrl + O保存更改,然后按下Enter確認(rèn)
按下Ctrl + X退出編輯器。

我們就可以在日志文件里找到腳本的運(yùn)行結(jié)果了
Crontab定時(shí)任務(wù)運(yùn)行Docker容器(Ubuntu 20),運(yùn)維,ubuntu,運(yùn)維,linux

我們還可以在/var/log/cron*中找到運(yùn)行日志:

Crontab定時(shí)任務(wù)運(yùn)行Docker容器(Ubuntu 20),運(yùn)維,ubuntu,運(yùn)維,linux

定時(shí)任務(wù)常見于日?qǐng)?bào)周報(bào)月報(bào),這里也給一下寫法

# 每天早上8點(diǎn)運(yùn)行
0 8 * * *  [command]

# 每周一早上8點(diǎn)運(yùn)行
0 8 * * 1  [command]

# 每個(gè)月第一天的早上8點(diǎn)運(yùn)行
0 8 1 * *  [command]

Crontab執(zhí)行時(shí)間計(jì)算 - 在線工具

在上述Crontab定時(shí)任務(wù)下,因?yàn)槲覀冞\(yùn)行的是腳本文件,因此若代碼中有有報(bào)錯(cuò)的話將不會(huì)發(fā)送輸出文件,但會(huì)將報(bào)錯(cuò)信息發(fā)送郵件,默認(rèn)郵件的路徑為 /var/mail,可以通過郵件了解報(bào)錯(cuò)原因。
如果直接在Crontab里執(zhí)行Docker任務(wù)(不經(jīng)過shell腳本),則每一次執(zhí)行任務(wù)后都將輸出發(fā)送郵件??梢孕薷拿畈话l(fā)送郵件避免占用空間:

* * * * * /yourpath/yourcommand > /dev/null

Crontab其他常用命令

  1. Crontab 啟動(dòng)、停止、重啟命令
#  啟動(dòng)服務(wù)
service crond start
# 關(guān)閉服務(wù)
service crond stop 
# 重啟服務(wù)
service crond restart
# 重新載入配置
service crond reload
# 查看crontab服務(wù)狀態(tài)
service crond status
# 同樣可以設(shè)置開機(jī)自啟動(dòng)
chkconfig --level 345 crond on
  1. 查看、添加、刪除任務(wù)
# 查看crontab定時(shí)任務(wù)
crontab -l
# 添加任務(wù),cron表達(dá)式  sh腳本路徑
crontab -e
# 刪除所有的定時(shí)任務(wù)
crontab -r

常見報(bào)錯(cuò):
1. Permission denied while trying to connect to the Docker daemon socket at unix
原因:docker進(jìn)程使用 Unix Socket 而不是 TCP 端口。而默認(rèn)情況下,Unix socket 屬于 root 用戶,因此需要 root權(quán)限 才能訪問
解決:為了避免每次運(yùn)行Docker命令的時(shí)候都需要輸入sudo,可以創(chuàng)建一個(gè)docker用戶組,并把相應(yīng)的用戶添加到docker分組里面。當(dāng)docker進(jìn)程啟動(dòng)的時(shí)候,會(huì)設(shè)置套接字可以被docker分組的用戶讀寫。

查看docker組中的用戶

cat /etc/group | grep docker

Crontab定時(shí)任務(wù)運(yùn)行Docker容器(Ubuntu 20),運(yùn)維,ubuntu,運(yùn)維,linux

在這里可以看到,我們的Docker用戶組(GID為998)當(dāng)前沒有任何用戶,因此我們需要將用戶加入Docker組

sudo gpasswd -a ${USER} docker  # 例如我的USER是licy

更新當(dāng)前Docker用戶組

newgrp docker

重新運(yùn)行命令查看docker組中的用戶,這時(shí)就可以看到我已經(jīng)被加入到docker用戶組中
Crontab定時(shí)任務(wù)運(yùn)行Docker容器(Ubuntu 20),運(yùn)維,ubuntu,運(yùn)維,linux

2. 找不到執(zhí)行任務(wù)的郵件
原因:系統(tǒng)中沒有安裝郵件傳輸代理(MTA),因此cron任務(wù)的輸出被丟棄了。
解決:終端運(yùn)行以下命令安裝Postfix:

sudo apt update
sudo apt install postfix

3. 頻繁發(fā)送執(zhí)行郵件占用空間

# 修改執(zhí)行命令為:
* * * * * /yourpath/yourcommand > /dev/null

4. 找不到crontab日志
解決:需要通過配置打開crontab的日志記錄功能

sudo vim /etc/rsyslog.d/50-default.conf
cron.* /var/log/cron.log # 將cron前面的注釋去掉
# 重啟rsyslog
sudo /etc/init.d/rsyslog restart
# 重啟rsyslog
sudo service rsyslog restart 
# 重啟cron程度
sudo service cron restart

參考來源:
解決 ERROR:Docker Got permission denied while trying to connect to the Docker daemon socket at unix文章來源地址http://www.zghlxwxcb.cn/news/detail-676951.html

到了這里,關(guān)于Crontab定時(shí)任務(wù)運(yùn)行Docker容器(Ubuntu 20)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Crontab(定時(shí)任務(wù))使用: Linux-Centos7使用crontab制定定時(shí)任務(wù),定時(shí)執(zhí)行某任務(wù)

    Crontab(定時(shí)任務(wù))使用: Linux-Centos7使用crontab制定定時(shí)任務(wù),定時(shí)執(zhí)行某任務(wù)

    參考:https://blog.csdn.net/m0_49605975/article/details/120701771 1.用yum命令安裝Crontab 2.啟動(dòng),關(guān)閉,重啟 3.設(shè)置開機(jī)啟動(dòng) 1.設(shè)置定時(shí)任務(wù)-進(jìn)入編輯模式 -和vim操作一至 2.查看定時(shí)任務(wù)列表 3.添加定時(shí)任務(wù) 樣例: 添加一個(gè)定時(shí)任務(wù),定時(shí)清空某個(gè)文件夾里面日志文件的內(nèi)容 3.1 編寫一個(gè)清

    2024年02月01日
    瀏覽(45)
  • 【Java 定時(shí)任務(wù)】crontab定時(shí)任務(wù)配置(139)

    【Java 定時(shí)任務(wù)】crontab定時(shí)任務(wù)配置(139)

    背景 在日常的開發(fā)工作中我們經(jīng)常會(huì)遇到定時(shí)任務(wù)的相關(guān)問題,比如: 信用卡定時(shí)每月給用戶推送賬單數(shù)據(jù); 輪訓(xùn)更新某個(gè)任務(wù)的狀態(tài)是否完成; 設(shè)置一個(gè)定時(shí)提醒; 郵件或消息設(shè)置定時(shí)發(fā)送; 定時(shí)統(tǒng)計(jì)某個(gè)時(shí)間段的數(shù)據(jù)存入緩存; 一、基礎(chǔ) 什么是Crontab? Crontab,即C

    2024年02月04日
    瀏覽(29)
  • 【Linux】crontab 定時(shí)任務(wù)

    【Linux】crontab 定時(shí)任務(wù)

    當(dāng)你需要在Linux系統(tǒng)中定期執(zhí)行某些任務(wù)時(shí),crontab(cron table)是一個(gè)非常有用的工具。它允許你根據(jù)預(yù)定的時(shí)間表創(chuàng)建和管理定時(shí)任務(wù)。 按照進(jìn)程的功能和運(yùn)行的程序分類,進(jìn)程可劃分為兩大類。 系統(tǒng)進(jìn)程 :可以執(zhí)行 內(nèi)存資源分配和進(jìn)程切換等 管理工作;而且,該進(jìn)程的

    2024年02月10日
    瀏覽(29)
  • crontab做系統(tǒng)定時(shí)任務(wù)命令

    crontab做系統(tǒng)定時(shí)任務(wù)命令

    給系統(tǒng)設(shè)置一個(gè)定時(shí)的任務(wù),相當(dāng)于一個(gè)鬧鐘 我們每天的0點(diǎn)去做一些清理工作,自檢工作,重要數(shù)據(jù)存盤備份工作,一個(gè)組里面很多同時(shí)都在提交代碼,git作為代碼管理工具,每一天都可能使用git倉庫里面的代碼 用里面的代碼做一個(gè)打包,生成當(dāng)成哦我們軟件的一個(gè)版本,

    2024年02月06日
    瀏覽(25)
  • 創(chuàng)建定時(shí)任務(wù)——crontab的使用

    創(chuàng)建定時(shí)任務(wù)——crontab的使用

    Linux crontab 是用來定期執(zhí)行程序的命令。 當(dāng)安裝完成操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)此任務(wù)調(diào)度命令。 crond 命令每分鐘會(huì)定期檢查是否有要執(zhí)行的工作,如果有要執(zhí)行的工作便會(huì)自動(dòng)執(zhí)行該工作。 **注意:**新創(chuàng)建的 cron 任務(wù),不會(huì)馬上執(zhí)行,至少要過 2 分鐘后才可以,當(dāng)然你

    2024年02月11日
    瀏覽(26)
  • Linux 定時(shí)任務(wù)調(diào)度(crontab)

    Linux 定時(shí)任務(wù)調(diào)度(crontab)

    Crontab命令用于設(shè)置周期性被執(zhí)行的指令。該命令從標(biāo)準(zhǔn)輸入設(shè)備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執(zhí)行。 可以使用Crontab定時(shí)處理離線任務(wù),比如每天凌晨2點(diǎn)更新數(shù)據(jù)等,經(jīng)常用于系統(tǒng)任務(wù)調(diào)度。 一般Linux系統(tǒng)中都會(huì)裝有Crontab,如果沒有安裝可以使

    2024年02月07日
    瀏覽(30)
  • crontab -e 系統(tǒng)定時(shí)任務(wù)

    crontab -e 系統(tǒng)定時(shí)任務(wù)

    crontab 是由 “cron” 和 “table” 兩個(gè)單詞組成的縮寫。其中,“cron” 是一個(gè)在 Linux 和類 Unix 操作系統(tǒng)中用于定時(shí)執(zhí)行任務(wù)的守護(hù)進(jìn)程,而 “table” 則是指一個(gè)表格或者列表,因此 crontab 就是一個(gè)用于配置和管理定時(shí)任務(wù)列表的命令。 crontab -e 是一個(gè)用于編輯 crontab 文件的命

    2024年02月13日
    瀏覽(30)
  • CentOS 7 定時(shí)任務(wù) crontab

    本文是基于 CentOS 7 ,其他 Linux 發(fā)行版可能略有不同。 crontab 適用場景 crontab 用于提交和管理執(zhí)行周期性的任務(wù)。 例如你需要在每天凌晨 1 點(diǎn)重啟服務(wù)器,那么 crontab 可以很方便的幫你執(zhí)行重啟操作。 再例如,你要每隔 5 分鐘檢查某個(gè)服務(wù)是否在運(yùn)行,也可以使用 crontab 來實(shí)

    2024年02月16日
    瀏覽(24)
  • Linux Crontab命令定時(shí)任務(wù)

    1,crontab:是Linux,unix的定時(shí)任務(wù),需要系統(tǒng)安裝crontab程序,存儲(chǔ)的指定被守護(hù)進(jìn)程crond激活,每分鐘去檢查一次需要執(zhí)行的job, 2,新創(chuàng)建的cron任務(wù),不會(huì)馬上執(zhí)行,至少要過 2 分鐘后才可以,可以重啟 cron 來馬上執(zhí)行。 3,檢查是否安裝crontab: rpm -qa | grep crontab 4,全局配置文

    2024年02月16日
    瀏覽(24)
  • Linux crontab命令定時(shí)任務(wù)詳解

    Linux crontab命令定時(shí)任務(wù)詳解

    ????????crond是Linux系統(tǒng)中用來定期執(zhí)行命令或指定程序任務(wù)的一種服務(wù)或軟件,與Windows下的計(jì)劃任務(wù)類似。當(dāng)安裝完成操作系統(tǒng)后,默認(rèn)會(huì)安裝此服務(wù)工具,并且會(huì)自動(dòng)啟動(dòng)crond進(jìn)程。crond進(jìn)程每分鐘會(huì)定期檢查是否有要執(zhí)行的任務(wù),如果有要執(zhí)行的任務(wù),則自動(dòng)執(zhí)行該任

    2024年02月04日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包