Arch Linux 定时运行python脚本(crontab)

环境
Arch Linux
官网https://wiki.archlinux.org/

一、python

1.1 安装python

安装python

pacman -S python

1.2 python虚拟环境

使用pip进行python package management

# 在当前目录下创建一个venv 叫做envname
$ python -m venv envname
# 激活envname的python环境
$ source envname/bin/activate
# 在envname环境下进行操作
(envname) $ pip list
# 退出envname环境
(envname) $ deactivate
$ 

1.2.1 使用pip管理包

# 在envname环境下进行操作
(envname) $ pip install numpy
(envname) $ pip list

1.2.2 运行python程序

# 在envname环境下进行操作
(envname) $ python mypycode.py

1.3 编写一个简单的python程序

一个运行就会记录当前时间的程序record_timestamp.py

# 一个运行就会记录当前时间的程序
import datetime

f=open(r"/home/rebecca/pyProjects/record_timestamp/src/record.txt", 'a', encoding='utf-8')

current_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

f.write(current_time + '\n')

二、编写shell script脚本控制python程序的运行

为了程序精准,下面全部使用绝对路径。这意味着程序一旦启用,就不能移动文件的位置。

2.1 建立目录用于存放程序文件

假设当前已经创建好了一个venv名字叫做record_timestamp

在这里插入图片描述
进入venv的根目录,创建一个名字叫src的文件夹,专门用来放python程序的文件。随便叫啥名字,我就给它起了一个src,反正当前路径下没有一个叫src的目录。

$ cd /home/rebecca/pyProjects/record_timestamp
$ mkdir src

把1.3 的record_timestamp.py文件放在该目录下

2.2 编写shell script脚本

编写shell script脚本
record.sh

#!/bin/bash

source /home/rebecca/pyProjects/record_timestamp/bin/activate
python /home/rebecca/pyProjects/record_timestamp/src/record_timestamp.py
deactivate

三、安装并配置cron

有很多种选项https://wiki.archlinux.org/title/Cron,本案例使用cronie。

3.1 安装

root用户

pacman -S cronie

3.2 配置定时任务

3.2.1 设置每分钟执行一次

普通用户哦!

# 查看当前已有的定时任务
crontab -l
# 编辑定时任务
crontab -e

编辑配置定时任务,具体规则
参照1https://linux.vbird.org/linux_basic/centos7/0430cron.php#crontab
参照2https://wiki.gentoo.org/wiki/Cron

配置一个“每分钟执行一次”

crontab -e
*/1 * * * * . /home/rebecca/pyProjects/record_timestamp/src/record.sh

保存退出

3.2.2 报错

参照1https://wiki.archlinux.org/title/Bash
参照2https://stackoverflow.com/questions/21848801/cant-edit-crontab

no crontab for ec2-user - using an empty one
/bin/sh: /usr/bin/vi: No such file or directory
crontab: "/usr/bin/vi" exited with status 127

在/home/rebecca 家目录下创建.bashrc文件

cd /home/rebecca
vim .bashrc

编辑文件,添加内容:

export EDITOR=/usr/bin/vim

3.3 启动cron服务

# 启动
systemctl start cronie.service
# 停止
systemctl stop cronie.service

# 开启开机自启动
systemctl enable cronie.service
# 关闭开机自启动
systemctl disable cronie.service

# 查看当前服务状态
systemctl status cronie.service

3.4 定时任务执行结果

cat /home/rebecca/pyProjects/record_timestamp/src/record.txt

结果
在这里插入图片描述

相关推荐

  1. linux定时运行脚本

    2024-04-05 05:12:05       13 阅读
  2. Linux后台长时间以及定时运行python脚本

    2024-04-05 05:12:05       32 阅读
  3. Linux 定时关机 crontab

    2024-04-05 05:12:05       38 阅读
  4. 定时任务cron与crontab

    2024-04-05 05:12:05       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-05 05:12:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-05 05:12:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-05 05:12:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-05 05:12:05       20 阅读

热门阅读

  1. Linux中关于网络方面常用命令行介绍

    2024-04-05 05:12:05       10 阅读
  2. Megatron-DeepSpeed-GPU-多机训练

    2024-04-05 05:12:05       19 阅读
  3. c++ new int[10]()会进行初始化.

    2024-04-05 05:12:05       10 阅读
  4. 【Python】【Flask】提交表单后报500错误

    2024-04-05 05:12:05       11 阅读
  5. css隐藏溢出隐藏的滚动条

    2024-04-05 05:12:05       14 阅读
  6. Pod安全上下文与Linux Capabilities浅析

    2024-04-05 05:12:05       13 阅读
  7. 递归与树的深度优先搜索:探索它们之间的关系

    2024-04-05 05:12:05       13 阅读
  8. Go语言中正则表达式简介

    2024-04-05 05:12:05       14 阅读
  9. Tokio强大的Rust异步框架

    2024-04-05 05:12:05       16 阅读
  10. 百问网FreeRTOS学习笔记第50到56讲

    2024-04-05 05:12:05       11 阅读
  11. 数据结构之Set和Map

    2024-04-05 05:12:05       15 阅读
  12. Mybatis中如何将多个查询结果封装为一个对象列表

    2024-04-05 05:12:05       17 阅读
  13. 开源项目-CSDN专栏

    2024-04-05 05:12:05       13 阅读