Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >设置权限后,没有将crontab执行到容器中。

设置权限后,没有将crontab执行到容器中。
EN

Stack Overflow用户
提问于 2022-06-16 09:06:25
回答 2查看 434关注 0票数 0

我正在运行一个带有图像的码头集装箱:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ubi8/ubi-minimal

cronjob有正确的路径,go数据包已经安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
crontab -l
*/2 * * * * go run /usr/local/src/script.go

该文件具有正确的权限:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-rw-r-xr-x 1 root root 6329 Jun 16 15:10 script.go

然而,crontab -e如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/bin/sh: /usr/bin/vi: No such file or directory
crontab: "/usr/bin/vi" exited with status 127

cat /etc/crontab

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# 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

crontab被添加到dockerfile中,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RUN crontab -l | { cat; echo "*/2 * * * * go run /usr/local/src/script.go"; } | crontab -

我认为这是正确的设置,不是吗?

crontab应该每2分钟执行一次脚本,但它不是。此外,图像是最小的,我不能编辑任何文件,我只是包含了一些来自dockerfile的文件的权限。

如果需要更改crontab中的任何路径,我必须通过dockerfile进行此操作。

EN

回答 2

Stack Overflow用户

发布于 2022-06-16 10:26:20

由于这听起来很麻烦,请考虑完全跳过cron守护进程,然后只在一个循环中睡觉。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/sh
while true; do
  TIME_LOOP_START=$(date +%s)  # integer time in seconds
  script.go
  # calculate offset for 2 minutes in seconds
  sleep $(($TIME_LOOP_START + 120 - $(date +%s)))
done

改编自

您可能会发现,通过使时间和目标可执行参数$1 $2更好地扩展这一点。

票数 0
EN

Stack Overflow用户

发布于 2022-06-16 10:27:50

您需要启动cron守护进程。这是我制作的一个Dockerfile

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM registry.access.redhat.com/ubi8/ubi-minimal
RUN microdnf update && microdnf install cronie
RUN crontab -l | { cat; echo "*/2 * * * * /usr/local/src/script.sh"; } | crontab -
COPY script.sh /usr/local/src/
CMD crond -n

注意,CMD运行crond时,-n选项将crond保持在前台。如果我们让它去线程化,那么docker将看到进程已经结束,并将终止容器。

我没有使用go,而是创建了一个类似于这样的小型shell脚本,名为script.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#/bin/sh
echo Hello from script >> ~/log.txt

它每2分钟写一次/root/log.txt。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72649498

复制
相关文章
Java 指定日期和日期间隔,返回间隔 之前 | 之后 的日期
public class DateUtil { /** * 指定日期和日期间隔,返回间隔之前的日期 * @param specifiedDay * @param interval * @return */ public static String getSpecifiedDayAgo(String specifiedDay, int interval){ return getSpecifiedDay(specifiedDay
大数据工程师-公子
2019/03/14
2.6K0
bootstrap 日期控件起始日期&结束日期相互约束
使用bootstrap的日期控件需要单独引入bootstrap-datetimepicker.min.css和bootstrap-datetimepicker.min.js 详情及文件可以通过下面地址下载:http://www.bootcss.com/p/bootstrap-datetimepicker/index.htm
程序新视界
2022/05/06
3K0
bootstrap 日期控件起始日期&结束日期相互约束
微信小程序日期选择器(起始日期与终止日期)轮子复制粘贴直接用————modal组件
先上图。 每次开始默认获取当前选择的日期。 wxml <view class="beijing"> <view class="second"> <view class="second_1"> <view class="second_1_1"> <button bindtap="begin" type="primary">点击重选</button> </view> <view class="second_1_2">
啦啦啦啦
2023/02/11
7120
微信小程序日期选择器(起始日期与终止日期)轮子复制粘贴直接用————modal组件
Oracle中的日期间查询
在Oracle中,如果要进行日期间的查询需要用到Oracle的内置函数to_date()。
陈树义
2022/04/29
3.6K0
【爬虫军火库】生成指定日期间的日期列表
今天没能空下来时间写太多,所以只简单记录一个很具体的需求: 指定了起止日期,如何生成一个日期列表。 这个需求是我之前在抓取一个环保的历史数据时遇到的: 如图,在这个页面上,我们需要手动通过日期控件选
不二小段
2018/04/08
1.4K0
【爬虫军火库】生成指定日期间的日期列表
拉链表起始时间转成多行日期
dataphin拉链表起始时间转成多行日期: (ps:dataphin split()怎么都识别不出空格,自闭了。。。替换成字符解决了)
chimchim
2022/11/13
4080
js根据起始日期加间隔天数计算出结束日期
getNewDay(dateTemp, days) { dateTemp = dateTemp.split("-"); //转换为MM-DD-YYYY格式 var nDate = new Date(dateTemp[1] + "-" + dateTemp[2] + "-" + dateTemp[0]); var millSeconds = Math.abs(nDate) + days * 24 * 60 * 60 * 1000; var rDa
Wyc
2023/03/23
6.3K0
js根据起始日期加间隔天数计算出结束日期
如何设置Code39码的起始码和终止码星号
Code 39码支持26个英文大写字母(A-Z),十个数字(0-9),以及符号(-、.、_(空)、*、$、/、+、%)。可以对任意长度的数据进行编码,Code 39码用于物流跟踪、生产线流程等方面,是比较常用的条形码类型之一。39码的起始码和终止码为固定的星号“*”,即39码前后各有一个星号“*”来标识条形码的开始和结束。下面我们就介绍如何设置这个起始码和终止码。
神奇像素科技
2022/01/13
1.3K0
如何设置Code39码的起始码和终止码星号
datepicker 日期连续选择(需要改源码)
先上效果: 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml
deepcc
2018/05/16
1.6K0
MySQL获取当前时间与日期间隔[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
6.9K0
python 获取n天前的日期和日期列表
import datetime def get_nday_list(n): import datetime before_n_days = [] for i in range(1, n + 1)[::-1]: before_n_days.append(str(datetime.date.today() - datetime.timedelta(days=i))) return before_n_days
用户5760343
2022/05/13
3.2K0
Power Query如何计算两个日期间隔月数
(Date.Year([止])-Date.Year([起]))*12+Date.Month([止])-Date.Month([起])
wujunmin
2021/09/07
2.4K0
Power Query如何计算两个日期间隔月数
当前日期得到本周的开始和结束日期
本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。
Java架构师必看
2021/03/22
2.8K0
golang如何计算两个日期之间的日期差?
golang如何计算两个日期之间的日期差? 日期格式:“2017-09-01” ,“2018-03-11”
双面人
2022/09/28
7.4K0
Java 实现将连续的日期 按照天数进行分割
目录 1 工具类 2 实现 1 工具类 public static List<Map<String,Object>> getCycleList(int cycleNum, String startTime, String endTime) throws ParseException, ParseException { System.out.println("统计的时间段为:从"+startTime+"到"+endTime); Date endParse = new
一写代码就开心
2023/02/13
1.7K0
Java 实现将连续的日期 按照天数进行分割
如何用Python获取两个日期之间的日期?
问:如何用Python获取两个日期之间的日期? def date_range(start, end): delta = end - start # as timedelta days = [start + timedelta(days=i) for i in range(delta.days + 1)] return days start_date = datetime(2020, 12, 1) end_date = datetime(2020, 12, 5) print(d
TalkPython
2020/12/11
5.8K0
Power Pivot中如何计算具有相同日期数据的移动平均?
解释:这里需要2个条件,除了日历条件,还需要添加一个日期是否有值的条件,也就是汇总金额这里需要为非空。
逍遥之
2020/03/24
3.1K0
Power Pivot中如何计算具有相同日期数据的移动平均?
EXCEL中日期对应的数值如何转换为ABAP中的日期
默认情况下,Excel把1900-1-1 0:00:00存储为1,把1900-1-1 0:00:00以后的每一个时刻存储为该时刻与1900-1-1 0:00:00这个时刻的差值(以天为单位)。
matinal
2023/10/13
2430
python获取日期加减之后的日期
python语言中的datetime模块可以利用其中的方法获取不同的日期,比如获取当前日期、明天、昨天、上个月、下个月和明年。下面利用几个实例说明这些日期的获取方法,操作如下:
周小董
2019/03/25
10.9K0
python获取日期加减之后的日期
Power Pivot智能日期运用——连续时间(1)
(八) 连续时间 1. Datesinperiod A. 语法 DATESINPERIOD ( <Dates>, <StartDate>, <NumberOfIntervals>, <Interval> ) 位置 参数 描述 第1参数 Dates 需要计算的日期列 第2参数 StartDate 开始时间,日期表达式 第3参数 NumberOfIntervals 一个整数数字 第4参数 Interval 时间类型(年季月日) B. 返回 表——单列时间数据的表 C. 注意事项 返回的结果日期必须是第1参数范
逍遥之
2020/03/24
7170

相似问题

起始日期和终止日期

30

在Oracle中具有给定期间的起始日期和终止日期的周列表

10

如何从flatpicker获取起始日期和终止日期?

128

获取多个起始/终止日期的日期范围

12

是否验证起始日期和终止日期?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文