[382]定时任务JoBX(opencron升级版)

2023-11-12

opencron文章链接:https://blog.csdn.net/xc_zhou/article/details/80950811

##升级日志

V1.2.0 by 2018-xx-xx

    1)支持Window端,实现全平台编译和安装

    2)简化安装部署流程,提供三个脚本一键安装启动项目(build.sh,agent.sh,server.sh)

    3)更换项目rpc调度框架thrift为Netty和Mina

    4)引入zookeeper,更改心跳检测机制

    5)基于zookeeper,agent实现自动注册

    6)基于zookeeper实现server集群,动态增减server,job自动分配,实现高可用

    7)server端支持单机和集群两种部署方式,对用户来说一个参数决定哪种部署方式

    8)可以自由定义任务的执行身份

    9)server内置tomcat和jetty组件,支持开发者模式,大大减轻运维部署的难度

    10)webssh新增基于privateKey方式的登录

    11)支持上传文件到agent

    12)更强大的任务流调度

    13)支持对外提供api的方式,允许通过接口调度任务

    14)新增一系列的examples调度使用实例

    15)修复一系列已知bug,增强稳定性和可用性

    此版本是里程碑版本,从底层架构到项目实现都进行重新规划,大大提高了可用性和稳定性,建议所有人升级``

V1.1.0 by 2017-04-20

1)新增agent和server代理连接方式

2)新增quartz类型的任务调度

3)新增web终端,实现web终端文件上传,主题更换

4)更改agnet和server心跳检查机制

5)新增流程任务调度

6)增加xss和csrf注入攻击的预防

7)server端增加踢人下线单一登录控制

jobx

一个功能完善真正通用的linux定时任务调度定系统,满足多种场景下各种复杂的定时任务调度,同时集成了linux实时监控,webssh,提供一个方便管理定时任务的平台.

你是否有定时执行任务计划的需求,需要在linux的crontab里一一定义任务?

  • 需要在每台linux服务器的crontab里一一定义任务
  • 任务的执行监控太不方便了
  • 得登录到每台机器查看定时任务的运行结果,机器一多简直是一种灾难
  • 对于多台机器协同处理一个任务很麻烦,如何保证多台机器上的任务按顺序依次执行?
  • 当任务运行失败,要重新执行,还得重新定义下执行时间,让其重跑,重跑完成了还得改回正常时间
  • 正在运行的任务要kill掉很麻烦,查看进程然后才能kill …

jobx的出现将彻底的解决上面所有问题.功能如下:

  • 自动化管理任务,提供可操作的web图形化管理
  • 要当场执行只需点击执行即可,非常方便
  • 时间规则支持quartz和crontab,更强大更灵活
  • 非常方便的修改任务的执行时间
  • 任务的运行状态实时查看
  • 支持任务kill(包括由当前任务调起的其他子任务链,彻底kill)
  • 支持重新执行正在运行的任务
  • 出错后实时通知给任务人(超过重跑次数自动发送邮件,短信)
  • 支持任务超时设置,一旦超过预定运行时长自动kill,任务结束,防止僵尸任务
  • 支持流程任务(多台机器上协同完成一个大的任务,按任务分配的顺序依次执行每台机器上的任务)
  • 记录任务的运行日志,非常方便查看
  • 多用户多角色
  • 现场执行(选择N台机器同时执行一个命令或任务)
  • webssh,在浏览器一键ssh登录到linux服务器
  • 提供服务器的性能实时监控 …

运行环境

Java JDK 1.7 or greater http://www.oracle.com/technetwork/java/javase/overview/index.html

Tomcat server 8.0 or greater https://tomcat.apache.org

Zookeeper http://zookeeper.apache.org/

Redis https://redis.io/

Browser IE10+

安装说明

jobx分为两个jobx-server端和jobx-agent端,jobx-server端即为一个web可视化的中央管理调度平台,jobx-agent为要管理的任务的机器 agent和server都依赖zookeeper,安装部署jobx之前必须先安装和启动zookeeper,server和agent必须连接同一个zookeeper,server端依赖redis

编译步骤:

1)下载源码: 
  > git clone https://github.com/jobxhub/jobx.git

2):修改server端的配置信息
   1:创建数据,数据库名字可以是jobx或者其他
   2:进入jobx-server/src/main/resources 修改config.properties里的jdbc连接信息

   #jdbc
   jdbc.driver=com.mysql.jdbc.Driver
   jdbc.url=jdbc:mysql://${mysql_host}:3306/jobx?useUnicode=true&characterEncoding=UTF-8
   jdbc.username=${user}
   jdbc.password=${password}

   #redis
   redis.host=${redis.host}
   redis.password=${redis.password}
   redis.port=${redis.port}

   #zookeeper
   jobx.registry=zookeeper://${zookeeper_host}:2181?bakup=${zookeeper_host1}:2181,${zookeeper_host2}:2181

3):修改agent端配置信息
   cd JobX/jobx-agent/src/conf/conf

   #zookepper注册中心
   jobx.registry=zookeeper://127.0.0.1:2181   

4):进入源码目录执行编译:
   *nix平台执行 sh build.sh
   window平台双击 build.bat
   编译完成的文件在build/dist下

5):启动agent
    1)自动化部署
        *nix平台:  执行 sh agent.sh
        window平台: 需要进入jobx-agent/target下,解包jobx-agent-${version}.tar.gz到指定的位置,进入bin,执行startup.bat

    2) 手动部署agent步骤

        将jobx-agent-${version}.tar.gz包拷贝到要管理任务的目标服务器,解包,会看到以下目录
        ---bin/
        |  startup.sh          #agent的启动脚本,调用的是jobx.sh来完成
        |  shutdown.sh         #agent停止脚本,调用的是jobx.sh来完成
        |  jobx.sh         #agent控制启动|停止的脚本
        |  monitor.sh          #实时监控获取数据需要的脚本,由系统调度
        |  kill.sh             #kill任务时需要的脚本,由系统调度
        ---conf/
           conf.properties     #agent配置文件 
        |  log4j.properties    #log4j配置文件
        ---lib/
        | *.jar                #agent运行需要的jar文件
        ---temp/
        | *.sh                 #用于存放项目生成的零时文件的目录
        ---logs
        | jobx.out         #项目启动会产生的Log文件

        > tar -xzvf jobx-agent-${version}.tar.gz
        1)修改conf/conf.properties里的配置信息
            #zookepper注册中心
            jobx.registry=zookeeper://${zookeeper_host}:2181
            #agent Ip,确保server可以通过此ip访问到该agent(主要实现agent自动注册)
            jobx.host=127.0.0.1
        2)启动jobx-agent 进入jobx-agent/bin
        > cd jobx-agent/bin
        > sh startup.sh
        这里可以接受两个参数,分别是服务启动的端口和密码(默认端口是:1577,默认密码:jobx)以及agent自动注册的url和密码 
        如要指定参数启动命令如下:
        > sh startup.sh -P10001 -p123456
        参数说明:
        -P (大写的p)为agent启动的端口,选填,如果不输入默认启动端口是1577
        -p (小写的p)为当前agent的连接密码,选填,如果不输入默认连接该机器的密码是jobx
        以下两个参数为agent自动注册需要的两个参数(选填)
        该脚本启动之后agent就自动注册到server端了
        更多详细的启动信息请查看logs/jobx.out

        3)停止jobx-agent 进入jobx-agent/bin 执行:
        > cd jobx-agent/bin
        > sh shutdown.sh

6):启动server

  1) 自动化部署
     *nix平台执行 server.sh
     window平台执行server.bat即可完成启动

  2) 手动发布 tomcat或者其他web服务器 
     tomcat发布项目步骤:
     找到build/dist/jobx-server.war
     tomcat部署有两种部署方式
     1):直接部署到webapps下:
        1:下载tomcat8或者以上版本(http://tomcat.apache.org)
        2:解压tomcat,删除webapps目录下的全部文件 
          >  rm -rf ${tomcat_home}/webapps/*
        3:在webapps下新建ROOT文件夹 
          >  mkdir ${tomcat_home}/webapps/ROOT
        4:将war解包到ROOT下并删除war文件(注意解包完毕一定要删除war包)
          >  mv server.war ${tomcat_home}/webapps/ROOT 
          >  cd ${tomcat_home}/webapps/ROOT 
          >  jar -xvf server.war 
          >  rm -rf server.war
        5:更改jdbc和zookeeper配置信息 
          > vi ${tomcat_home}/webapps/ROOT/WEB-INF/classes/config.properties
        6:完成启动
     2):通过配置server.xml外部指向
        1:将war包解压到指定的路径,如 /data/www/jobx,并删除war包
        2:更改jdbc配置文件
           vi /data/www/jobx/WEB-INF/classes/config.properties
        3:进入tomcat的conf中修改server.xml配置文件
           下面附上我的完整的server.xml配置:

           <?xml version='1.0' encoding='utf-8'?>
           <Server port="7000" shutdown="SHUTDOWN">
             <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
             <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
             <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
             <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
             <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

             <GlobalNamingResources>
               <Resource name="UserDatabase" auth="Container"
                         type="org.apache.catalina.UserDatabase"
                         description="User database that can be updated and saved"
                         factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                         pathname="conf/tomcat-users.xml" />
             </GlobalNamingResources>

               <Service name="Catalina">

               <!--项目的访问端口-->
               <Connector port="8080" protocol="HTTP/1.1"
                           connectionTimeout="20000"
                          maxThreads="550"
                           minSpareThreads="25"
                           maxSpareThreads="75"
                           minProcessors="100"
                           maxProcessors="300"
                          acceptCount="100"
                          enableLookups="false"
                          disableUploadTimeout="true"
                          compression="on"
                          compressionMinSize="2048"
                          compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
                          redirectPort="7970"
                          URIEncoding="UTF-8"/>
                   <Connector port="3007" protocol="AJP/1.3" redirectPort="2007" />

                    <Engine name="Catalina" defaultHost="localhost">
                           <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
                           <Host name="localhost"
                                   appBase="/data/www/jobx"
                                   unpackWARs="true"
                                   autoDeploy="false"
                                   xmlValidation="false"
                                   xmlNamespaceAware="false"
                                   URIEncoding="UTF-8">

                           <Context path="/"
                                   docBase="/data/www/jobx"
                                   debug="0"
                                   reloadable="true"/>
                           </Host>

                   </Engine>
             </Service>

           </Server>

           配置里Host里的appBase和Context的docBase即为外部解压的项目的路径
           推荐第二种外部部署的方式

        启动tomcat,打开浏览器以$ip:$port的方式访问,如:  http://192.168.0.188:8080   

        不论哪种方式部署,第一次会自动创建表,默认初始用户名jobx,密码jobx,第一次登陆会提示修改密码.

  3):进入到jobx的管理端,如果agent也启动了,应该可以直接在server的执行器页面看到agent,则添加任务即可...

注意事项:

1):如果自行编译项目的,有可能agent端的脚本执行失败,这时请更改agent/bin下所有的脚本的字符集
   a) vim *.sh
   b) :set ff=unix 保存退出即可

2):如果脚本字符编码已经是unix,还是启动失败,请尝试给启动脚本添加权限 chmod 777 bin/*

3):如果agent已经成功启动server还是连接不上,请检查agent端口是否开放(如很多云服务器得开放端口才能访问)

4):如果server端用nginx做反向代理,配置如下:

upstream jobx {
     server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name www.jobx.org;
    root /data/www/jobx/;

    location / {
        proxy_pass        http://jobx;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        client_max_body_size  10m;
        client_body_buffer_size 1m;
        proxy_connect_timeout 300;
        proxy_send_timeout    300;
        proxy_read_timeout    300;
        proxy_buffer_size     4k;
        proxy_buffers    4   32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size  64k;
    }

    #这里必须这么配置,否则web终端无法使用
    location  ^~  /terminal.ws {
        proxy_pass http://jobx;
        proxy_redirect    off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

}

常见问题:

  • 1)创建作业运行身份无法选择?

由于考虑到权限的问题,当前登录的用户不能随便指定任务的执行身份,需要超级管理员权限的用户(jobx)登录,在设置页面统一设置运行身份,多个运行身份用","分割,然后超级管理员在编辑用户
为该用户指定可以执行的身份(可选择多个),这样用户在创建任务的时候就可以选择指定身份去执行了

注意
这里的执行用户名,是你agent端机器的系统用户名,不能随便起名字,不然会找不到用户名,在这里添加之后,要在用户管理里边,添加该用户

image.png

    1. executor.so:cannot execute binary file

需要授权agent/bin下面的所有文件777权限
chmod 777 jobx-agent/bin/*
如果授权完还提示这个错,则需要进入源码目录(JobX/jobx-executor/src/main/c/executor.c),手动gcc编译下executor.c文件,然后将编译完的文件命名成executor.so,放到jobx-agent/bin下
并且授777权限
gcc executor.c -o executor.so指定生成问件名

  • 3.agent端启动后,server找不到agent端执行器

重启server端

  • 4.jobx目前不支持cd /root/spider;python3 start.py这种形式的执行命令,jobx目前支持一行的执行命令,如:

python3 /root/spider/start.py
or
cd /root/spider && python3 a.py(这种形式,目前只支持单个a.py文件,对于一个整体的项目,还不可以)

  • 5.冥思苦想,终于想出来了一种解决办法
import os
os.system('cd /root/spider_project/chinamoney;python3 start.py')
#注意,要写到一个os里面,分开写的话,同样不能执行
#下边这个不能执行
os.system('cd /root/spider_project/chinamoney')
os.system('python3 start.py')

后续遇到的问题会持续更新

更多问题请加入jobx交流群156429713,欢迎大家加入

来源:https://github.com/jobxhub/JobX

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[382]定时任务JoBX(opencron升级版) 的相关文章

  • ThreadPoolTaskScheduler实现动态管理定时任务

    最近 有个项目有需要用到定时任务 所以做了一个动态管理定时任务的模块 本文将从项目背景 需求 选型 思路 具体实现等方面展开介绍 背景 有个支付类的项目 中间会产生一些中间态的订单 需要有个定时任务轮询确认订单状态 该类项目体量较小 单节点
  • 任务调度系统(定时任务)

    1 运行流程 Cron表达式 设置触发规则 调度器 调度器本身就是一个线程 并且一定是单例的 如果不是单例 会出现多指挥官 任务乱套问题 存储任务位置 默认保存在内存中 RAMJobStore 出现重启后找不到任务问问题 所以可以在配置文件
  • 宝塔定时计划任务

    选择shell脚本 选择执行周期 在脚本内容内写入 curl sS connect timeout 10 m 60 此处为地址链接
  • XXL-Job快速入门+详细教程

    XXL Job快速入门 详细教程 1 概念 XXL JOB是一个轻量级分布式任务调度平台 详细说明 XXL JOB是一个任务调度框架 通过引入XXL JOB相关的依赖 按照相关格式撰写代码后 可在其可视化界面进行任务的启动 执行 中止以及包
  • Spring boot定时任务@Scheduled

    文章目录 1 前言 2 pom包配置 3 启动类启用定时 4 创建定时任务实现类 5 补充 cron表达式 6 遇到的坑 1 前言 Scheduled 参数可以接受两种定时的设置 一种是我们常用的cron 6 一种是 fixedRate 6
  • Spring 定时任务之 @Scheduled cron表达式

    一个cron表达式有至少6个 也可能7个 有空格分隔的时间元素 按顺序依次为 秒 0 59 分钟 0 59 小时 0 23 天 月 0 31 但是你需要考虑你月的天数 月 0 11 天 星期 1 7 1 SUN 或 SUN MON TUE
  • @Scheduled实现定时任务(实现多个定时任务并发执行)

    Scheduled实现定时任务 使用 Scheduled注解需要springboot启动类上添加注解 EnableScheduling SpringBootApplication MapperScan basePackages com xx
  • linux的crontab定时配置全过程

    今天因为业务需求 需要在服务器上配置定时任务执行数据库的sql语句 所以使用到了linux 的crontab 特此记录 分享一下自己的过程 首先呢 我们知道crontab是在linux中用于设定在某些时间可以自动执行某些命令的功能 在lin
  • Springboot 整合Quartz

    目录 一 Quartz介绍 二 Quartz核心元素 1 Scheduler 任务调度器 2 Trigger 触发器 3 JobDetail 定时任务的信息载体 三 Springboot整合Quartz 1 添加Quartz依赖 2 app
  • 定时删除centos服务器日志

    现在java程序的日志一般是使用log4j slf4j 来打日志 并且一般都喜欢用DailyRollingFileAppender模式 就是每天产生一个日志 还有一种是 RollingFileAppender模式 这个模式是按文件大小来保存
  • 上个厕所的功夫,就把定时任务的三种调度策略说得明明白白

    Spring Task 无疑是 Spring 环境下单机定时任务的首选 它用起来非常简单 功能也够用 Spring Task 有三种模式 分别是 fixedDelay cron 和 fixedRate 话不多说 我们先看代码 Slf4j C
  • 定时任务之Springboot整合Quartz详解

    文章目录 一 什么是Quartz 二 为什么使用Quartz 1 为什么要用定时任务 2 为什么使用Quartz 三 常见开源定时任务的框架的异同 四 Quartz的组件 五 Quartz持久化 1 为什么要持久化 2 Quartz提供了两
  • python笔记15--常见定时功能

    python笔记15 常见定时功能 1 简介 2 定时方法 最粗暴的 while sleep schedule 实现定时 APScheduler 后台定时 3 注意事项 4 说明 1 简介 实际项目中经常要执行一些定时任务 因此有必要按需选
  • XXL-JOB 分布式定时任务调度平台

    文章目录 1 概述 2 使用 1 概述 首先我们要知道什么是XXL JOB 官方简介 XXL JOB是一个分布式任务调度平台 其核心设计目标是开发迅速 学习简单 轻量级 易扩展 现已开放源代码并接入多家公司线上产品线 开箱即用 XXL JO
  • flask+APScheduler定时任务的使用

    APScheduler定时任务使用以及在flask中的调用 APScheduler简介 组成部分 调度器 安装 普通使用安装 结合flask使用安装 使用 添加job add job参数详解 interval 间隔时间 每隔一段时间执行 d
  • [382]定时任务JoBX(opencron升级版)

    opencron文章链接 https blog csdn net xc zhou article details 80950811 升级日志 V1 2 0 by 2018 xx xx 1 支持Window端 实现全平台编译和安装 2 简化安
  • Linux实现使用定时任务执行php程序(以及定时任务url带参数)

    php程序已经写好了 位置 data html XXX redis to mysql php php安装位置为 app bin php 查找php安装位置使用 whereis php which php php v which 这条命令主要
  • xxl-job任务详解

    文章目录 任务管理 新增任务页面字段释义 1 1 路由策略 1 2 运行模式 BEAN模式 GLUE模式 1 3 阻塞处理策略 1 4 子任务ID 1 5 JobHandler 1 6 Cron 1 7 任务超时时间 任务操作 任务管理 新
  • Linux 设置定时任务

    作者 Linux猿 简介 CSDN博客专家 华为云享专家 Linux C C 云计算 物联网 面试 刷题 算法尽管咨询我 关注我 有问题私聊 欢迎小伙伴们点赞 收藏 留言 本篇文章主要介绍在 Linux 环境下如何设置定时任务 一 实验环境
  • 【MedusaSTears】复杂定时任务SpringBoot+Quartz实例,解决jobclass如何注入一个service类,以及实现简单业务逻辑

    目录 吃水不忘挖井人系列 1 认识了解各种定时任务实现方式 2 本文主要参考 3 其他参考 一 业务需求 这里提一下我对 Scheduled和Quartz的一点小看法 如有误解还请指正 二 软件环境 java版本 SpringBoot版本

随机推荐

  • Kubernetes入门到实践 (一) Kubernetes介绍 与 yum安装Kubernetes集群

    文章目录 一 Kubernetes 介绍 二 Kubernetes 核心功能介绍 三 Kubernetes 节点组件介绍 四 Kubernetes集群的安装与配置 1 Kubernetes集群的五种安装方式对比 2 安装前的环境准备 2 1
  • Caffe源码中各种依赖库的作用及简单使用

    1 Boost库 它是一个可移植 跨平台 提供源代码的C 库 作为标准库的后备 在Caffe中用到的Boost头文件包括 1 shared ptr hpp 智能指针 使用它可以不需要考虑内存释放的问题 2 date time posix t
  • 如何在win11上运行VC6.0

    说明 win11是在win10的基础上开发的不完全 体 VC6 0在win11上不能正常运行 方法 1 下载安装软件 安装包链接 https pan baidu com s 17cV V9BqOCEhqm5Ss8i8Zw 提取码 64mz
  • 抓取餐厅菜单信息 - 从餐饮网站获取餐厅菜单信息及价格

    目录 1 分析目标网站的结构 2 安装所需库 3 编写爬虫程序 4 提取所需数据并保存结果
  • Android Studio支持系统签名(证书)

    让Android Studio集成系统签名 需要用到一个工具keytool importkeypair 这个工具的作用是将系统签名的相关信息导入到已有的签名文件里 可从这里下载 相关文件 platform x509 pem platform
  • Java WebService _CXF、Xfire、AXIS2、AXIS1_四种发布方式(优缺点对比)

    xis axis2 Xfire以及cxf对比 http ws apache org axis http axis apache org axis2 java core http xfire codehaus org http cxf apa
  • DVP,LVDS和MIPI

    Mipi 接口 和 LVDS 接口区别 主要区别 1 LVDS接口只用于传输视频数据 MIPI DSI不仅能够传输视频数据 还能传输控制指令 2 LVDS接口主要是将RGB TTL信号按照SPWG JEIDA格式转换成LVDS信号进行传输
  • 记录自己在结构光三维重建领域的学习过程(五)

    读了一篇论文 Domain randomization for transferring deep neural networks from simulation to the real world 讲的是域随机化 但其实我没有认真看 其实
  • html转pdf

    html转pdf 本地安装wkhtmltopdf Java操作wkhtmltopdf实现Html转PDF 本地测试
  • sqlite3的交叉编译

    比如说我们在qtcreator中编写程序的时候想用到sqlite3数据库 但是因为qtcreator中的编译器中的库中并没有sqlite3的库 所以肯定编译不了 所以若想在qtcreator中编译sqlite3的程序 首先的将sqlite3
  • 初级python爬虫薪资-月薪2万的爬虫工程师,Python需要学到什么程度?

    Python 爬虫学到什么样就可以找工作了 非计算机专业 正在自学python 很多教程里提到的网站的爬虫都会写了 比如拉勾网 豆瓣 实习僧 京东 淘宝 某妹子图等等 但是因为不是计算机专业的 也没学所谓的四大名著 不知道那四大对找工作重要
  • 残体字符设计:INVETA

    残体字符设计是logo设计中很常见的一种风格 它通过删减 多余 的笔画来实现残缺的字符 让读者通过 脑补 还原出原来的文字 以此独特的风格加深用户的产品印象 Github支持STL文本格式的3D模型预览 奈何STL格式非常简陋 难以表示复杂
  • android 的 Testing Support Library 测试支持包(库)

    Testing Support Library 测试支持包 库 这个库提供了一系列的api来快速的创建和运行测试对于你的app 包括jUnit 4 和用户 UI 的测试 创建可以使用android studio IDE 或者通过命令行 两种
  • 日志:slf4j+logback 的配置与使用

    1 常用日志组件和选择 java开发日志处理是发现和调试bug所 必不可少的 那么现在企业中常用的日志组件有哪些呢 JCL JUL SLF4j Log4j Log4j2 Logback jboss loggin 等 一般日志是配套出现的 一
  • 内存请求分页实验java_请求分页内存管理的模拟

    一 实验题目 二 代码 1 Main java package OS import java util Scanner public class Main public static int pageSize blockSize procS
  • CentOS8提高篇11:centos8软件安装dnf命令

    DNF是新一代的rpm软件包管理器 它首先出现在 Fedora 18 这个发行版中 而目前 它取代了yum 正式成为从 Fedora 22 起 Fedora 版本的包管理器 DNF包管理器克服了YUM包管理器的一些瓶颈 提升了包括用户体验
  • SE0、J、K 、Chirp J、Chirp K

    SE0 J K Chirp J Chirp K 是 USB 总线上常见的信号状态 用于表示不同的电平和信号类型 SE0 Single Ended Zero 是 USB 总线上的空闲状态 表示逻辑低电平 在 SE0 状态下 数据线 D 和 D
  • Git 强制回退到某个历史版本再推送到远程

    1 使用 git log 命令历史版本记录回退版本 git reset hard f6a7c803a6931a9eca011d4e097389e0845cbe49 2 推送到远程 git push f u origin master ps
  • sqli-labs18、19关详解

    18关 对两个输入框都进行了设置 所以只能寻找其他注入点 看到insert语句从uagents插入 我们可以用http header live插件得到post内容放进hackbar中 再在user agent里面添加修改
  • [382]定时任务JoBX(opencron升级版)

    opencron文章链接 https blog csdn net xc zhou article details 80950811 升级日志 V1 2 0 by 2018 xx xx 1 支持Window端 实现全平台编译和安装 2 简化安