cron

基于 Chaos Mesh® 和 Argo 打造分布式测试平台

℡╲_俬逩灬. 提交于 2020-12-03 08:09:53
不久前我们开源了基于 Kubernetes 的混沌测试工具 Chaos Mesh® ,Chaos Mesh 提供了模拟系统异常状况的能力,但这只是混沌工程中的一环,完整混沌工程核心原则包含了系统稳定状态的定义、提出假设、运行实验以及验证和改进。 本篇文章主要介绍我们是如何在 Chaos Mesh 和 Argo 的基础上打造自己的自动化测试平台 TiPocket (https://github.com/pingcap/tipocket) ,实现完全自动化的混沌测试,构成混沌测试完整闭环。 为什么需要 TiPocket? 为了确保用户的数据安全,我们需要确保给用户提供的每一个 TiDB 版本都已经经过了严格的测试,所以我们为 TiDB 设计了各种异常场景,并实现了数十个测试 Case,所以在我们的 Kubernetes 集群中,可能同时运行着十几个甚至几十个混沌实验,即使我们拥有了 Chaos Mesh 来帮助我们管理错误注入,但这还远不够,我们还需要去管理 TiDB 集群,需要去收集指标,需要去分析结果,同时进行如此多的混沌实验,另一方面,我们还需要对 TiDB 生态中的其他工具进行混沌测试,这是无法想象的,因此,我们开发了 TiPocket 来解放自己。 TiPocket 是一个基于 Kubernetes 和 Chaos Mesh 的完全自动化测试框架 ,目前我们主要使用它用来测试

tomcat 自动重启

最后都变了- 提交于 2020-12-01 13:21:40
最近使用了一个小服务器,1g1k,tomcat jvm不够,老是重启,就写了一个脚本自动重启 n=$(jps|wc -l) if [[ $n -eq 1 ]]; then /opt/tomcat9/bin/startup.sh fi 在cron 里配置 crontab -e */1 * * * * /home/lpf/commond/restart centos cron 是没有秒的,分钟 小时 日 月周 命令,周也不是?号。 来源: oschina 链接: https://my.oschina.net/internetafei/blog/4767243

Cannot read property 'send' of underfined

天涯浪子 提交于 2020-11-30 00:23:01
问题 const mudaeon = require('./mudaetime.json'); const cron = require('cron'); const Discord = require('discord.js'); const client = new Discord.Client(); module.exports = { name: 'mudaetime', description: '...', execute(message, args) { if (mudaeon) { const channel = client.channels.cache.get('id'); let scheduledMessage = new cron.CronJob( '* * * * *', () => { scheduledMessage.start(); }, message.react('✅'), channel.send('check $tu ! <@&id') ); } else !mudaeon; { cancel(); } }, }; Please help

Cannot read property 'send' of underfined

房东的猫 提交于 2020-11-30 00:22:20
问题 const mudaeon = require('./mudaetime.json'); const cron = require('cron'); const Discord = require('discord.js'); const client = new Discord.Client(); module.exports = { name: 'mudaetime', description: '...', execute(message, args) { if (mudaeon) { const channel = client.channels.cache.get('id'); let scheduledMessage = new cron.CronJob( '* * * * *', () => { scheduledMessage.start(); }, message.react('✅'), channel.send('check $tu ! <@&id') ); } else !mudaeon; { cancel(); } }, }; Please help

Cannot read property 'send' of underfined

陌路散爱 提交于 2020-11-30 00:22:12
问题 const mudaeon = require('./mudaetime.json'); const cron = require('cron'); const Discord = require('discord.js'); const client = new Discord.Client(); module.exports = { name: 'mudaetime', description: '...', execute(message, args) { if (mudaeon) { const channel = client.channels.cache.get('id'); let scheduledMessage = new cron.CronJob( '* * * * *', () => { scheduledMessage.start(); }, message.react('✅'), channel.send('check $tu ! <@&id') ); } else !mudaeon; { cancel(); } }, }; Please help

Cannot read property 'send' of underfined

强颜欢笑 提交于 2020-11-30 00:21:16
问题 const mudaeon = require('./mudaetime.json'); const cron = require('cron'); const Discord = require('discord.js'); const client = new Discord.Client(); module.exports = { name: 'mudaetime', description: '...', execute(message, args) { if (mudaeon) { const channel = client.channels.cache.get('id'); let scheduledMessage = new cron.CronJob( '* * * * *', () => { scheduledMessage.start(); }, message.react('✅'), channel.send('check $tu ! <@&id') ); } else !mudaeon; { cancel(); } }, }; Please help

Cannot read property 'send' of underfined

那年仲夏 提交于 2020-11-30 00:21:00
问题 const mudaeon = require('./mudaetime.json'); const cron = require('cron'); const Discord = require('discord.js'); const client = new Discord.Client(); module.exports = { name: 'mudaetime', description: '...', execute(message, args) { if (mudaeon) { const channel = client.channels.cache.get('id'); let scheduledMessage = new cron.CronJob( '* * * * *', () => { scheduledMessage.start(); }, message.react('✅'), channel.send('check $tu ! <@&id') ); } else !mudaeon; { cancel(); } }, }; Please help

Java问题记录——循环里的二次判断与状态更新

半腔热情 提交于 2020-11-29 19:52:05
Java问题记录——循环里的二次判断与状态更新 摘要:本文主要记录了在循环操作时可能出现的问题。 问题重现 在使用循环结构时,如果使用了定时任务,或者代码会多次调用循环结构,可能会导致有些对象会被循环多次。 举例来说,如果有一个结账的代码,每五分钟会执行一次: 1 @Scheduled(cron = "0 0/5 * * * ?" ) 2 @Async 3 public void handle(){ 4 List<Customer> list = customerDao.listCustomerByStatus(0); // ["zhangsan", "lisi"] 5 for (Customer customer : list) { 6 customerDao.updateCustomerStatus(customer.getName(), 1); // 表示正在结账 7 // 结账代码 8 customerDao.updateCustomerStatus(customer.getName(), 2); // 表示结账完成 9 } 10 } 假设结账代码的执行时间太长,超过了五分钟。 第一次触发定时任务时,查询到状态为0的顾客有ZhangSan和LiSi,进入循环代码块,将ZhangSan的状态改成1并执行结账代码。 由于结账代码执行时间超过了五分钟

IBM AIX 巡检脚本

℡╲_俬逩灬. 提交于 2020-11-27 09:32:03
export LANG=en_US echo "======== system information ========" > aix_chk.out prtconf > /tmp/aix_chk_tmp1 grep "System Model" /tmp/aix_chk_tmp1 >> aix_chk.out grep "Machine Serial Number" /tmp/aix_chk_tmp1 >> aix_chk.out grep "Host Name:" /tmp/aix_chk_tmp1 >> aix_chk.out grep "Number Of Processors" /tmp/aix_chk_tmp1 >> aix_chk.out grep "Processor Clock Speed" /tmp/aix_chk_tmp1 >> aix_chk.out grep "Memory Size" /tmp/aix_chk_tmp1 >> aix_chk.out grep "Good Memory Size" /tmp/aix_chk_tmp1 >> aix_chk.out echo "" >> aix_chk.out echo "MICROCODE LEVEL" >> aix_chk.out lsmcode >> aix_chk.out echo "" >> aix

入侵 Linux 系统的惯用姿势:11 种提权方式揭秘

ぃ、小莉子 提交于 2020-11-27 09:18:31
大部分计算机系统都被设计为可以「多个用户一起使用」,其中就产生了管理员用户和普通用户。 普通用户可以理解为使用者,他的权限只可以查看、编辑部分文件;而管理员的权限则可以对全部的文件进行「增删改查」操作,甚至收集主机系统中的敏感信息,修改系统关键配置。 在黑客的攻击渗透中,会想尽办法通过「某个漏洞」获取到目标主机系统上的一个 shell 用于执行系统命令,从而达到控制目标主机的目的。而当他获取到的初始 shell 为低权限用户时,需要想办法提升权限为高权限用户, 这个过程就叫做系统权限提升,简称「提权」 。 为什么要提权 一次完整的渗透测试流程,应该包含以下 8 个步骤: 主机发现 > 服务枚举 > 实施攻击 > 获取shell > 权限提升 > 权限维持 > 内网渗透 > 痕迹清除 可以看到所有的步骤都是围绕「提权」来进行的,高权限 shell 能带来以下好处: 对更多的文件进行「增删改查」操作,便于进一步收集主机系统中的敏感信息 Linux 系统的 root 权限可获取 shadow 文件中的密码 Hash,若内网环境中存在「账户 / 密码复用」的情况,可用于横向扩展 Windows 系统中的 system 权限可提取内存中的密码 Hash,可进一步用于域渗透 简而言之,提权能为渗透测试后期的工作带来便利。 Linux 提权的 11 种方法 Linux 提权的花样非常多