环境
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
结果