Logo

cron 笔记

cron 笔记,包含 cron 不执行 shell 脚本的解决办法

2023年4月1日
1 min read

cron 笔记,包含 cron 不执行 shell 脚本的解决办法

也许 shell 脚本本身可以执行,但是 cron 中不能执行,需要像下面这样设置

cron-for-run-per-1h.cron
SHELL=/bin/bash
0 * * * * . /etc/profile;/bin/sh /pathto/run.sh
Note (NOTE)

最后一定要有一个回车!后者会导入失败

run.sh
#!/bin/bash
PATH=/opt/someApp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LOGS_FILE="/pathto/logs/$(date "+%Y-%m-%d-%H-%M-%S").log"
cd /pathto
docker-compose up >> $LOGS_FILE 2>&1

最后设置到 cron

run.sh
crontab /pathto/cron-for-run-per-1h.cron
Warning (warning)

使用此命令会覆盖之前所有的 cron 任务

如果你不想覆盖之前的,那么就 /etc/cron.d 中新建文件,然后写进去。

Warning (warning)

cron 的话基本必有一个 ?,它仅可存在于 dayofmouth 或者 dayofweek

个人 docker 配置备份

Dockerfile
FROM python:3.11
WORKDIR /bin/test
COPY ./requirements.txt ./
RUN pip install -r ./requirements.txt
ENTRYPOINT [ "python" ]
CMD [ "./test.py" ]
docker-compose.yml
version: '3.8'
services:
enhanced-faas:
build:
context: ./
container_name: enhanced-faas
volumes:
- './:/bin/test'
expose:
- 443,80
command: ./main.py
networks:
- nginx-proxy
networks:
nginx-proxy:
external: true

评论