Linux 定时循环执行 python 脚本

摘要:
本文主要介绍在linux环境下,定时循环执行python脚本的两种方法。')6time.sleep7#break在终端运行如下命令nohuppythontime.py&功能:实现了每秒将"Hello,World!或者通过psaux|greppython命令查看python进程,找到挂起的脚本的PID,再使用kill-9PID中断挂起的脚本。

本文主要介绍在linux环境下,定时循环执行python脚本的两种方法。

方法一: nohup

vim time.py

1 import time
2 while(True):
3     #time.sleep(1)
4     with open('time.log', 'a+') as logfile:
5         logfile.write('Hello, World!
')
6     time.sleep(1)
7     #break

在终端运行如下命令

nohup python time.py &

功能:实现了每秒将 "Hello, World!" 字符串,写入当前目录下的 time.log 文件中。

原理:利用 python 的无限循环 while(True) ,并使用 time.sleep() 方法设置相应的秒数时停,最后通过 nohup 和 & 命令将脚本挂在后台不挂断的运行。

nohup command &:在后台运行 command,原程序的标准输出和错误重定向到当前目录下的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

查看:通过 tail -f time.log 在当前终端追踪显示 time.log 文件,可用 Ctrl+c 中断显示。

中断:通过 jobs 命令查看当前后台中运行的任务,再使用 fg %n 将第n项挂到前台,最后用 Ctrl+c 中断任务。

image

或者通过 ps aux | grep python 命令查看 python 进程,找到挂起的脚本的 PID ,再使用 kill -9 PID 中断挂起的脚本。

imageimage

拓展:nohup和&后台运行,进程查看及终止Linux的nohup命令的用法

方法二: cron

vim time.py

1 with open('/home/titanxp/test/time.log', 'a+') as logfile:
2     logfile.write('Hello, World!
')

在终端中使用 crontab -e 命令建立如下任务

*/1 * * * * /usr/bin/python /home/titanxp/test/time.py

功能:实现了每分钟将 "Hello, World!" 字符串,写入指定目录下的 time.log 文件中。

原理:通过 crontab -e 命令建立周期性任务。要注意的是,脚本中和脚本路径需要写全路径。

crontab 格式:minute hour day-of-month month-of-year day-of-week commands

查看:通过 tail -f /var/log/cron.log 命令查看 cron 日志,可看到任务是否在执行。

image

中断:通过 crontab -e 打开进行任务编辑,只需删除或注释(#)定时任务即可中断。

image

拓展:crontab命令Linux定时执行脚本

总结

方法一运用 Python 的 time 库实现简单的定时循环执行脚本,可适用变量需累加的情况。

方法二结合 cron 命令可实现复杂的定时循环循环执行脚本。

上述表述可能不到位,欢迎交流讨论。

免责声明:文章转载自《Linux 定时循环执行 python 脚本》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇菜鸟初学Linux——Ubuntu系统中,用root权限进行复制粘贴操作WindowsServer2008R2清理winsxs目录下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux下启动多个php,分别监听不同的端口,比如9000与9001

在工作中,我们可能会遇到,服务器集群的搭建。 这个时候,我们不可能,每一台服务器都是lnmp的环境,我们会把nmp分别放在不同的服务器上,不同的服务器负责不同的功能。比如我们下面要说的php 加入nginx和mysql已经在其他的服务器上配置好了,这个时候我们就需要将php这另外一台空闲的服务器上配置好。既然上服务器的集群,那肯定是要用到高并发和大容量的。...

linux命令学习(2):wc 命令

Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。 1.命令格式: wc [选项]文件... 2.命令功能: 统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。 3.命...

CentOS7 docker.repo 用阿里云Docker Yum源

yum安装软件的时候经常出现找不到镜像的情况 https://download.docker.com/linux/centos/7/x86_64/stable/repodata/repomd.xml: [Errno 12] Timeout on 解决方法:更新/etc/yum.repos.d目录下的docker.repo文件内容,使用阿里的镜像源 [do...

linux下redis4.0.2集群部署(利用Ruby脚本命令)

一、原生命令方式和Ruby脚本方式区别 利用Ruby脚本部署和用原生命令部署,节点准备的步骤都是一样的,节点启动后的握手,以及主从、槽分配,利用Ruby脚本一步就能完成,利用原生命令需要一步一步地执行命令完成。 二、部署架构:3台服务器,互为主从,3主3从 三、准备6个节点配置文件 在172.28.18.75上操作 cd /etc/redis vim r...

thrift入门(1) 安装配置

thrift 是一个跨语言的通讯框架,支持c++, java, .net, python,php等。你可以用一种语言写一个服务器,然后另外一种语言写一个客户端,快速搭建一个rpc调用服务。而且它很轻量级,只要引入特定库便可以运行服务和客户端,不需要再安装配置其它复杂的环境和容器。 下面介绍如何在ubuntu11.10上安装thrift0.8.0。 1....

linux下将Python环境默认更改为Python3.6

1、删除原来指向python2的软链接 1 rm -rf /usr/bin/python 2、创建新的软链接 1 ln -s /usr/bin/python3.6 /usr/bin/python 3、查看是否更改成功 python -V //若显示版本信息为python3.6,则更改成功...