写个服务,写完后放在/lib/systemd/system路径下

update_rule.server

[Unit]
Description = TinyScan update rule [Service]
Type=forking
WorkingDirectory=/root/TinyScan_Auto_Deploy/init_cve
ExecStart=/root/TinyScan_Auto_Deploy/init_cve/start.sh start
ExecStop=/root/TinyScan_Auto_Deploy/init_cve/start.sh stop
ExecReload=/root/TinyScan_Auto_Deploy/init_cve/start.sh restart
Restart=always [Install]
WantedBy=multi-user.target

start.sh

#!/bin/bash

SERVICE_NAME="update-rule"
#CONFIG_NETCARD_NAME=`cat /tinyscan/config/config.ini | grep -zo '\[config_net_card\]\sname=.*' | sed -n '2p' | awk -F '=' '{print $2}'`
#SERVER_NETCARD_NAME=`cat /tinyscan/config/config.ini | grep -zo '\[net_card\]\sname=.*' | sed -n '2p' | awk -F '=' '{print $2}'` pid=`ps -ef | grep 'python3 /root/TinyScan_Auto_Deploy/init_cve/update_rule.py' | grep -v 'grep' | awk '{print $2}'` up()
{
# if [ ${CONFIG_NETCARD_NAME} != ${SERVER_NETCARD_NAME} ]; then
# iptables -A INPUT -i ${SERVER_NETCARD_NAME} -p tcp --dport 1080 -j DROP
# fi
# source /tinyscan/config/venv/bin/activate
python3 /root/TinyScan_Auto_Deploy/init_cve/update_rule.py &
} down()
{
#if [ ${CONFIG_NETCARD_NAME} != ${SERVER_NETCARD_NAME} ]; then
# iptable -D INPUT -i ${SERVER_NETCARD_NAME} -p tcp --dport 1080 -j DROP
#fi
kill ${pid}
} if [ ! $1 ]; then
echo "Please specify args 'start|restart|stop'"
exit
fi if [ $1 == 'start' ]; then
if [ ! $pid ]; then
up
else
echo "${SERVICE_NAME} is running! pid=$pid"
fi
fi if [ $1 == 'restart' ]; then
if [ $pid ]; then
down
else
sleep 3
up
fi
fi if [ $1 == 'stop' ]; then
if [ $pid ]; then
down
else
echo "${SERVICE_NAME} is stopped"
fi
fi

update_rule.py是一个定时任务

import os

import schedule
import time
import datetime def job1():
os.system('/root/TinyScan_Auto_Deploy/init_cve/sSnvd -u') if __name__ == '__main__':
# schedule.every(10).seconds.do(job1)
schedule.every().day.at('11:00').do(job1)
while True:
schedule.run_pending()

当然单纯的定时任务可以利用crontab来搞定

crontab定时任务

cat /etc/crontab

crontab -e : 编辑定时任务(用户可以省略,默认是当前用户)

crontab -l : 查看定时任务(只查看当前用户的定时任务)

cat /var/log/cron : 可以查看到执行那些定时任务

cat /var/log/messages: 记录系统操作的日志,(例如:用户登录)

最新文章

  1. 探索c#之Async、Await剖析
  2. union和union all有什么不同?
  3. centos上手动编译安装tmux的问题
  4. 2877: [Noi2012]魔幻棋盘 - BZOJ
  5. cocos2d-x CCScale9Sprite
  6. C++专题 - 修练8年C++面向对象程序设计之体会 林锐
  7. Linux - Linux系统目录架构
  8. webstorm创建nodejs + express + jade 的web 项目
  9. Cannot convert 0 of type class java.lang.Integer to class java.lang.Boolean
  10. vue项目实战总结
  11. String,StringBuffer,StringBuilder的区别
  12. 苹果手机对网页上样式为position:fixed的弹窗支持不好的解决办法
  13. iOS 快速排序
  14. git多账号切换
  15. 支持开源,推动Orchard
  16. Flask web开发之路十四
  17. Swift使用AlamoFire超时设置和事件处理
  18. 002.WordPress常见插件
  19. Eclipse设置之:代码注释/server 控制台输出乱码解决
  20. flask简单的路由分发

热门文章

  1. concurrent-map 和 sync.Map,我该选择哪个?
  2. 基于NPOI封装导出Excel方法
  3. Redux Toolkit 的使用方法
  4. 【KAWAKO】TVM-在ubuntu服务器上的安装
  5. php pdo如何查询记录条数
  6. The size of the request headers is too long.
  7. 用于双目重建中的GPU编程:julia-cuda
  8. 【转】IDEA搭建SSM框架(spring+maven+mybatis+mysql+junit)
  9. 在github上如何克隆带子模块的项目?
  10. elasticsearch8.6.1安装后无法打开127.0.0.1:9200的解决办法