Linux下定时运行python脚本的两种方法

本次目标是将指定python脚本每1s执行一次。


1 利用crontab定时运行任务l

输入命令

crontab -e

编辑:

 每分钟执行一次:

* * * * * myCommand

每一小时执行一次

* */1 * * * command

更多示例(参考链接

5      *       *           *     *     ls         指定每小时的第5分钟执行一次ls命令
30     5       *           *     *     ls         指定每天的 5:30 执行ls命令
30     7       8           *     *     ls         指定每月8号的7:30分执行ls命令
30     5       8           6     *     ls         指定每年的6月8日5:30执行ls命令
30     5       8           6     *     ls         指定每年的6月8日5:30执行ls命令
30     6       *           *     0     ls         指定每星期日的6:30执行ls命令
30     3     10,20         *     *     ls         每月10号及20号的3:30执行ls命令
25     8-11    *           *     *     ls         每天8-11点的第25分钟执行ls命令
*/15   *       *           *     *     ls         每15分钟执行一次ls命令
30     6     */10          *     *     ls         每个月中,每隔10天6:30执行一次ls命令
22     4       *           *     *     root     run-parts     /etc/cron.daily
#每天4:22以root身份执行/etc/cron.daily目录中的所有可执行文件,run-parts参数表示,执行后面目录中的所有可执行文件。

重定义输出

*/1 * * * * /root/XXXX.sh > /tmp/load.log 2>&1 &

crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有

  • * 取值范围内的所有数字
  • / 每过多少个数字
  • - 从X到Z
  • 散列数字

优点:简单方便,可以以日期周期为单位进行运行

缺点:不能按秒执行

参考链接: Linux Crontab 定时任务 

 

2 以服务形式后台运行

  利用systemctl命令设置快速启动,开机自启与自动重启。

  首先在Python文件中利用sleep与无限循环设置每秒运行。

  进入unit存放目录:

 centos:

cd /usr/lib/systemd/system

 ubuntu:

/etc/systemd/system

 编辑.service配置文件

vim collector.service
[Unit]
Description=Runforver Process By send.py
After=zabbix-server.service
After=mariadb.service
After=network.target

[Service]
ExecStart=/usr/bin/python 脚本路径
ExecReload=/bin/kill -HUP $MAINPID
KillMode=control-group
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

参数详解:

[Unit]

Description:描述,

After:在network.target,auditd.service启动后才启动

ConditionPathExists: 执行条件

[Service]

EnvironmentFile:变量所在文件

ExecStart: 执行启动脚本

Restart: fail时重启

[Install]
Alias:服务别名
WangtedBy: 多用户模式下需要的 

 查看服务状态:

systemctl status collector

设置开机自启

 systemctl enable collector

启动服务

systemctl start collector

查看服务状态

systemctl status collector

ps: 列出系统unit

systemctl list-unit-files

参考链接:

详解Linux 服务管理两种方式service和systemctl

 

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用Linux系统自带的crontab命令来定时运行Python脚本。具体步骤如下: 1. 编写Python脚本,并保存在指定的目录下。 2. 打开终端,输入以下命令进入crontab编辑模式: crontab -e 3. 在编辑模式下,输入以下命令来设置定时任务: * * * * * python /path/to/your/python/script.py 其中,* * * * * 表示定时任务的时间设置,依次为分、时、日、月、周几,每个字段的取值范围为-59、-23、1-31、1-12、-7(和7都表示周日),*表示任意值。 /path/to/your/python/script.py 表示要运行Python脚本的路径。 4. 保存并退出编辑模式,定时任务即可生效。 需要注意的是,crontab命令设置的定时任务会在后台自动运行,不会有任何提示或输出。如果需要查看定时任务的运行情况,可以使用以下命令: tail -f /var/log/syslog 在日志中搜索关键字“CRON”,即可查看定时任务的运行情况。 ### 回答2: 在Linux操作系统中,我们可以通过使用crontab命令来实现定时运行python脚本的功能。 Crontab是一种命令行工具,它可以帮助我们在指定的时间间隔内执行预定的任务。在Linux系统中,每个用户都可以使用crontab命令自定义cron(CRON表)。cron表是一个文本文件,由多个部分组成,每个部分代表一个特定的细节,例如分钟、小时、日期、月份和星期几等。通过编辑cron表,我们可以指定Linux计划在何时运行脚本。 如何使用crontab运行Python脚本? 第一步:打开Cron表 在终端中运行以下命令来打开cron表: crontab -e 如果是第一次运行,则需要选择编辑器。建议选择nano或vim。 第二步:编辑Cron表 编辑cron表既可以指定频率又可以指定要运行的命令。例如定期每天运行Python脚本,可以在打开的Cron表文件中添加以下行: 0 0 * * * python /home/user/myscript.py 这行代码表示在每天的午夜0点运行/myscript.py脚本。您可以根据自己的需要、频率和时间间隔来编辑cron表。 第三步:保存并退出Cron表 完成编辑操作后,按Ctrl + X,然后按Y将做出的更改保存。 现在Python脚本已经配置好了并将在指定的时间间隔内自动运行。 总结: Linux操作系统中,我们可以通过使用crontab命令来实现定时运行python脚本的功能。首先我们需要打开cron表,然后编辑cron表以指定运行周期和要运行的命令。最后,将脚本保存并退出Cron表,即可启动定时任务,让Linux在指定的时间间隔内自动运行Python脚本。 ### 回答3: Linux操作系统可以通过crontab命令来实现定时运行Python脚本的功能。Crontab是一种在Unix和Linux操作系统中用于定期运行程序的工具。Crontab使用cron daemon作为后台进程,根据用户的设置自动执行任务。 下面是具体的步骤: 1. 首先需要创建自己的Python脚本,并保存到一个指定的目录下。比如我们将脚本命名为test.py,存放在/home/user1目录下。 2. 打开终端,输入命令crontab -e来编辑用户的crontab文件。如果是第一次使用,系统会提示选择编辑器,可以选择nano或者vim等。这里以nano为例。 3. 在打开的文件中,添加一行命令: `* * * * * cd /home/user1 && /usr/local/bin/python3 test.py >/dev/null 2>&1` 这行命令的含义是每分钟执行一次test.py脚本。星号表示每分钟都执行。cd /home/user1表示切换到用户目录下,/usr/local/bin/python3 test.py是执行Python脚本的命令。>/dev/null 2>&1是重定向命令,用于将所有输出信息重定向到空设备,防止邮件通知。 4. 保存并退出文件,系统会自动保存该crontab。命令行中会提示“crontab: installing new crontab”。 5. 接下来,可以使用命令crontab -l列出用户的所有crontab。如果看到刚才添加的命令,就说明设置成功了。 6. 如需修改、删除、增加任务,可再次进入编辑模式进行操作。 通过以上步骤,就可以实现定时运行Python脚本的功能。除了上述的每分钟执行一次,还可以按需设置其他定时执行方式,例如每小时、每天、每周等等。需要注意的是,Crontab命令“*”为通配符,表示任意值,可以使用10进制的数值代替,“0 * * * *”表示每小时0分执行一次,而“*/10 * * * *”表示每隔10分钟执行一次。在使用时需要根据自己的需求设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值