cron

APScheduler定时任务框架的使用

柔情痞子 提交于 2020-10-23 09:13:44
前言 APScheduler基于Quartz的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,不仅可以添加、删除定时任务,还可以将任务存储到数据库中、实现任务的持久化。基于这些功能,我们可以很方便的实现一个python定时任务系统。 安装 1、利用pip进行安装 pip install apscheduler 2、 APScheduler 有四种组成部分: triggers(触发器):   触发器包含调度逻辑,每一个作业有它自己的触发器,用于决定接下来哪一个作业会运行,除了他们自己初始化配置外,触发器完全是无状态的。 job stores(作业存储):   用来存储被调度的作业,默认的作业存储器是简单地把作业任务保存在内存中,其它作业存储器可以将任务作业保存到各种数据库中,支持MongoDB、Redis、SQLAlchemy存储方式。当对作业任务进行持久化存储的时候,作业的数据将被序列化,重新读取作业时在反序列化。 executors(执行器):   执行器用来执行定时任务,只是将需要执行的任务放在新的线程或者线程池中运行。当作业任务完成时,执行器将会通知调度器。对于执行器,默认情况下选择ThreadPoolExecutor就可以了

Java项目笔记之旅游点评项目总结04

余生颓废 提交于 2020-10-22 08:44:44
不点蓝字,我们哪来故事? Redis操作流程: 预热——初始化:以前在操作Redis中的数据之前,需要判断数据是否存在,存在获取,不存在创建一个(即准备数据)。实际中尽量避免,即操作之前就先将数据准备好; 缓存的逻辑操作:对缓存中的数据做CRUD等操作; 缓存数据的持久化:缓存中的数据被操作之后,数据库中的数据要不要和Redis被写的数据保持同步;读操作不会改变,不需要持久化; 初始化(预热): 凡是用到Redis的都要思考上面的三个步骤 思考: 使用Redis都要想清楚的问题: 需要初始化什么数据 ? 需要频繁改动的数据( DML )[ 此处需要将统计相关的vo数据初始化到Redis中 ] 不需要频繁改动的数据(DQL) 在哪一个项目执行初始化逻辑 ?(mgrsite、website-api) website-api :接口对外暴露,安全性不可保证;website-api后续拓展可能做集群操作,那样就会导致多次执行了初始化操作; 数据初始化数据数据管理范畴,你应该 使用mgrsite 来管理; 在JavaWeb中的哪一个组件中实现初始化逻辑?(filter、servlet、intercept、controller、listener) javaweb监听器:监听web(Tomcat)容器的启动,功能简单; spring容器的监听器 :监听的是spring容器的启动,功能强大

Crontab&自动清除日志

让人想犯罪 __ 提交于 2020-10-21 14:13:47
前情提要 由于某些服务日志日积月累生成很多的日志,所以需要定期的需要进行清除,保证磁盘空间,废话不多说,直接开始 1.编写脚本shell脚本 #vim auto-clear-log.sh #输入以下内容 #!/bin/sh log_path=/usr/local/openresty/nginx/logs/ #echo ${log_path} find ${log_path} -mtime +30 -name "*.log" -exec rm -rf {} \; #保存退出 #命令解释 #find:linux的查找命令,用户查找指定条件的文件; #/usr/local/openresty/nginx/logs/:想要进行清理的任意目录; #-mtime:标准语句写法; #+30:查找30天前的文件,这里用数字代表天数; "*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三; #-exec:固定写法; #rm -rf:强制删除文件,包括目录; #{} \; :固定写法,一对大括号+空格+\+; 2.给予执行权限 chmod +x auto-clear-log.sh 3.加入定时任务 #crontab -e # auto clear log 10 0 * * * /home/scripts/auto

linux crontab 定时任务 邮件问题 及其相关的 dead.letter 问题

元气小坏坏 提交于 2020-10-20 04:54:17
最近开发项目的时候发现公司服务器用root账号登录的时候 一直会提示有新的信件,一直提示一直提示。 联想到另一台服务器上 的dead.letter文件每天都不断的变大 而且在 root家目录里 ,系统硬盘里。过十天半个月就会收到 服务器的磁盘使用率超90%的报警短信, 我突然感觉是时候去除了一下这个问题了。之前就到处搜索dead.letter 问题。但是一直没有 靠谱的跟我这个问题一样的。 行了不废话了 。 直入主题,经过不断的搜索。终于在一个外文网站上找到了答案,主要原因我的服务器上有大量的定时任务 crontab ,而crontab中curl命令 执行有输出返回的信息后 ,linux会给对的crontab执行者 返回信息。而这个返回的信息就是通过邮件发给你的,通过邮件你可以查看你的定时任务 执行的情况 。而在这个执行任务的脚本中,有不少的开发小童鞋为了调整输出了不少内容 ,同时这个内容就返回到里你的邮箱里。这个执行一两次没有 什么问题。但是如果他几分钟就执行一次 或者是一分钟执行一次 ,那输出到你邮箱的内容就会很多了 。就像你的邮箱被垃圾流氓骚扰广告邮箱不断的 轰炸一样。 而那个 dead.letter 死信也是一样 ,不知道linux对应用户的邮箱没有了 ,被删除掉了。投递信件的时候没有信箱了,这个时候就会生成 dead.letter 。知道这个也就知道如何解决了, 进入

Linux安全服务器入侵检测基础

血红的双手。 提交于 2020-10-15 19:49:22
加群交流在后台回复“ 加群 ”,添加小编微信,小编拉你进去 后台回复“ 724 ”获取入门资料 一般服务器被入侵的迹象,包括但不局限于:由内向外发送大量数据包(DDOS肉鸡)、服务器资源被耗尽(挖矿程序)、不正常的端口连接(反向shell等)、服务器日志被恶意删除等。那么既然是入侵检测,首先要判断的是服务器是否被入侵,必须排除是管理员操作不当导致的问题,因此入侵检测的第一项工作就是询问管理员服务器的异常现象,这对之后入侵类型的判断非常重要。  在询问了相关异常信息,排除了管理员操作失误等原因后,那么便可以开始正式的上服务器进行入侵检测以及取证操作了。 一、其他命令 pidof 查看正在运行的名为 的进程 1 pidof filename fuser 可以通过文件或者tcp udp协议看到进程 1 fuser -n tcp port st at 可以看文件修改时间,大小等信息 1 stat filename lsmod 看加载模块 1 lsmod rp cinfo 看rpc服务开放 1 rpcinfo -p dmesg 看网卡是否混杂模式(promiscuous mod) 1 dmesg|grep eth0 二、审计命令 last   这个命令可用于查看我们系统的成功登录、关机、重启等情况,本质就是将/var/log/wtmp文件格式化输出,因此如果该文件被删除,则无法输出结果。

linux crontab 定时任务 邮件问题 及其相关的 dead.letter 问题

匆匆过客 提交于 2020-10-14 20:39:24
最近开发项目的时候发现公司服务器用root账号登录的时候 一直会提示有新的信件,一直提示一直提示。 联想到另一台服务器上 的dead.letter文件每天都不断的变大 而且在 root家目录里 ,系统硬盘里。过十天半个月就会收到 服务器的磁盘使用率超90%的报警短信, 我突然感觉是时候去除了一下这个问题了。之前就到处搜索dead.letter 问题。但是一直没有 靠谱的跟我这个问题一样的。 行了不废话了 。 直入主题,经过不断的搜索。终于在一个外文网站上找到了答案,主要原因我的服务器上有大量的定时任务 crontab ,而crontab中curl命令 执行有输出返回的信息后 ,linux会给对的crontab执行者 返回信息。而这个返回的信息就是通过邮件发给你的,通过邮件你可以查看你的定时任务 执行的情况 。而在这个执行任务的脚本中,有不少的开发小童鞋为了调整输出了不少内容 ,同时这个内容就返回到里你的邮箱里。这个执行一两次没有 什么问题。但是如果他几分钟就执行一次 或者是一分钟执行一次 ,那输出到你邮箱的内容就会很多了 。就像你的邮箱被垃圾流氓骚扰广告邮箱不断的 轰炸一样。 而那个 dead.letter 死信也是一样 ,不知道linux对应用户的邮箱没有了 ,被删除掉了。投递信件的时候没有信箱了,这个时候就会生成 dead.letter 。知道这个也就知道如何解决了, 进入

万物皆可 Serverless 之使用云函数 Timer 触发器实现每天自动定时打卡

夙愿已清 提交于 2020-10-06 02:23:29
不晓得大家有没有遇到过定时打卡的需求,比如商品秒杀,火车票定时开售、每日健康打卡等。这时候我们往往可以通过一些技术手段,编写一些自动化操作的脚本,来实现定时自动打卡的操作。 本文来自 Serverless 社区用户「乂乂又又」供稿 当然本文并不探讨如何编写自动化的操作脚本,而是和大家介绍一下如何使用腾讯云函数的 Timer 触发器实现定时任务,来快速、稳定、低成本地实现一些 fancy 的操作( 骚操作 ) 效果展示 每日健康信息自动更新 每日定时数据报告 可以看到,定时任务搭配邮箱发送云函数运行结果,用起来还是蛮舒服的,还可以给自己做一个每日科技资讯推送、数据报告之类的小玩意,自娱自乐。其他的用途请大家大开脑洞,自行脑补吧~ 实战教程 1. 新建云函数 运行环境我们选择 python3,模板函数选择定时拨测,然后点击下一步 模板函数的描述里写着「本示例代码的功能是定时拨测 URL 列表中的地址,并通过邮件发送告警」 而这正是我们想要的实现的功能,不过这个模板函数的邮件发送有点问题,我们稍后会详细说明 2. 模板函数分析 下面我们来分析一下这段示例代码 # -*- coding: utf8 -*- import sys import os sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)) + "/..")

树莓派开启crontab日志

纵然是瞬间 提交于 2020-10-05 05:50:16
crontab是Linux下类似Windows计划任务的一个程序,之前利用过这个程序来 设定闹钟 。后来发现找不到执行任务之后产生的日志文件。有时候需要配合日志文件作一些调试功能,经过一番折腾发现,系统默认禁止了日志文件的产生,重新开启即可。 实验环境 硬件:树莓派3b一台 操作系统:Raspbian with desktop 配置日志文件rsyslog.conf pi@raspberrypi:~ $ sudo nano /etc/rsyslog.conf 在文件中找到cron.*一行: #cron.* /var/log/cron.log #号表示该行被注释掉了,去掉#号,后面是日志文件的全路径,改成: cron.* /var/log/cron.log ctrl+o保存,ctrl+x退出。 重新启动日志服务 pi@raspberrypi:~ $ sudo service rsyslog restart 至此配置完成,以后crontab生成的日志文件就会输出到/var/log/cron.log中,查看日志文件: pi@raspberrypi:~ $ cat /var/log/cron.log �引用参考 【教程】树莓派设置闹钟 出处: https://www.jianshu.com/p/15c1eb54f2f3 来源: oschina 链接: https://my.oschina