运维

使用 ElasticSearch Curator 7天定期删除日志
使用 ElasticSearch Curator 7天定期删除日志
使用 ElasticSearch Curator 7天定期删除日志 背景 Curator 是 Elastic 官方发布的一个管理 Elasticsearch 索引的工具,可以完成许多索引生命周期的管理工作。 我使用的 elasticseraech 8.0 以上的版本,所有我直接安装最新版的curator,服务器是centos 7 的 二进制安装 下载 1wget https://packages.elastic.co/curator/5/centos/7/Packages/elasticsearch-curator-5.8.4-1.x86_64.rpm 安装 curator 1rpm -ivh elasticsearch-curator-5.8.4-1.x86_64.rpm 2curator --version 进入安装文件,创建文件 1cd /opt/elasticsearch-curator 2mkdir log 3cd log 4touch run.log 创建config.yml文件在log目录下 config.yml样例如下: 配置说明参考官网说明:config.yml 1# Rmember, leave a key empty if there is no value. None will be a string, 2# not a Python "NoneType" 3client: 4 hosts: 5 - 192.168.10.17 # elasticsearch IP 地址 6 port: 9200 7 url_prefix: 8 use_ssl: False 9 certificate: 10 client_cert: 11 client_key: 12 ssl_no_validate: False 13 http_auth: elastic:password # elastic 密码,没有就不用写 14 timeout: 30 15 master_only: False 16 17logging: 18 loglevel: INFO 19 logfile: /opt/elasticsearch-curator/log/run.
GNU/Linux 一键更换系统软件源脚本
GNU/Linux 一键更换系统软件源脚本
背景 有很多小伙伴,在接受公司老项目后,想要更新服务器源时,发现镜像源失效了,手动添加也很不方便,我这里提供了一个脚本供大家使用,轻松切换镜像源。 支持系统:  Debian 8.0 ~ 12  Ubuntu 14.04 ~ 23  Kali Linux 2.0 ~ 2023  Red Hat Enterprise Linux 7.0 ~ 9  Fedora 30 ~ 38  CentOS 7.0 ~ 8.5 / Stream 8 ~ 9  Rocky Linux 8 ~ 9  AlmaLinux 8 ~ 9  OpenCloudOS 8.6 / 9.0  openEuler 21.03 ~ 23  openSUSE Leep 15 / Tumbleweed  Arch Linux all 执行命令 国内使用 1bash <(curl -sSL https://www.jobcher.com/ChangeMirrors.sh) 教育网使用 1bash <(curl -sSL https://www.
JOBCHER BLOG
在windows上安装appium
在windows上安装appium Appium 主要用于软件测试自动化领域,以帮助确定给定应用程序的功能是否按预期工作。与其他类型的软件测试相比,UI 自动化允许测试人员编写代码,在应用程序的实际 UI 中演练用户方案,尽可能模拟现实世界中发生的情况,同时实现自动化的各种好处,包括速度、规模和一致性。 安装nodejs Appium是基于Node.js构建的,所以首先需要安装Node.js 下载地址:https://nodejs.org/en/download/ 下载并安装,验证是否安装成功 1node -v 安装appium 安装Appium。在命令提示符下运行: 1npm install -g appium 安装appium-doctor 安装appium-doctor。在命令提示符下运行: 1npm install -g appium-doctor 安装appium-desktop 安装appium-desktop。在命令提示符下运行: 1npm install -g appium-desktop 安装jdk 下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 下载并安装,验证是否安装成功 1java -version 安装android-sdk 下载地址:https://developer.android.com/studio 下载并安装,验证是否安装成功 1adb version 配置环境变量 在系统环境变量中添加以下变量 1ANDROID_HOME = D:\Android\sdk 2JAVA_HOME = C:\Program Files\Java\jdk1.8.0_311 3Path = %ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;%JAVA_HOME%\bin 验证是否配置成功 1appium-doctor 启动appium 1appium 启动appium-desktop 1appium-desktop 测试脚本 创建测试脚本test.py 1from appium import webdriver 2import time 3 4desired_caps = {} 5 6desired_caps['platformName'] = 'Android' 7desired_caps['platformVersion'] = '10' 8desired_caps['deviceName'] = 'Android Emulator' 9desired_caps['appPackage'] = 'com.
JOBCHER BLOG
systemd 守护命令
介绍 systemd 是 linux 中用来启动守护进程,Linux 最早一直采用 init 进程 (systemd 架构图) systemd 命令 systemd 不是一个具体的命令,而是一组命令,用于系统管理的各个方面 1.systemctl systemctl是 Systemd 的主命令,用于管理系统。 1# 重启系统 2$ sudo systemctl reboot 3 4# 关闭系统,切断电源 5$ sudo systemctl poweroff 6 7# CPU停止工作 8$ sudo systemctl halt 9 10# 暂停系统 11$ sudo systemctl suspend 12 13# 让系统进入冬眠状态 14$ sudo systemctl hibernate 15 16# 让系统进入交互式休眠状态 17$ sudo systemctl hybrid-sleep 18 19# 启动进入救援状态(单用户状态) 20$ sudo systemctl rescue 2.systemd-analyze systemd-analyze命令用于查看启动耗时 1# 查看启动耗时 2systemd-analyze 3 4# 查看每个服务的启动耗时 5$ systemd-analyze blame 6 7# 显示瀑布状的启动过程流 8$ systemd-analyze critical-chain 9 10# 显示指定服务的启动流 11$ systemd-analyze critical-chain atd.
JOBCHER BLOG
Linux crontab 命令
Linux crontab 命令 Linux crontab是用来定期执行程序的命令。 系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存 个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置 语法 1crontab [ -u user ] file 2crontab [ -u user ] { -l | -r | -e } 说明: crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。 -u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。 参数说明: -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe) -r : 删除目前的时程表 -l : 列出目前的时程表 时间格式如下: 1f1 f2 f3 f4 f5 program 2* * * * * 3- - - - - 4| | | | | 5| | | | +----- 星期中星期几 (0 - 6) (星期天 为0) 6| | | +---------- 月份 (1 - 12) 7| | +--------------- 一个月中的第几天 (1 - 31) 8| +-------------------- 小时 (0 - 23) 9+------------------------- 分钟 (0 - 59) 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推 当 f1 为 a, b, c,.
JOBCHER BLOG
linux常用命令
linux 常用命令 软件操作命令 1#软件包管理器 2yum 3# 安装软件 4yum install xxxx 5# 卸载软件 6yum remove xxx 7# 搜索软件 8yum search xxx 9# 清理缓存 10yum clean packages 11# 列出已安装 12yum list 13# 软件包信息 14yum info 服务器硬件资源和磁盘操作 1# 内存 2free -h 3# 硬盘 4df -h 5# 负载 6w/top/htop 7# 查看cpu 8cat /proc/cpuinfo 9# 查看磁盘 10fdisk -l 文件和文件夹操作命令 命令 解释 ls 查看目录下的文件 touch 新建文件 mkdir 新建目录 cd 进入目录 rm 删除文件和目录 cp 复制 mv 移动 pwd 显示路径 系统用户操作命令 防火墙相关设置 提权操作 sudo 和文件传输
JOBCHER BLOG
linux基础知识
linux 基础知识 1、简述 Linux 权限划分原则。 给文件或目录分配权限时,先考虑所有者和所属组 遵循最小化权限,用啥权限给啥权限 修改目录和子文件归属权限,注意递归 文件权限分配是最常用的安全防护手段 2、当用户 user1,对/testdir 目录有写和执行权限时,该目录下的只读文件 file1 是否可修改和删除? 对 file1 不能修改也不能删除。(如果对目录有写权限和执行权限,则对 file1 不能修改可以删除) 3、如果一个系统没有任何的备份策略,请写出一个较为全面合理的备份方案! 增量备份:将相较于前一天增加的内容备份,适合每天改变量较大的数据。 差异备份:将相较于第一天改变的内容备份,适合原始数据量比较大,但是之后改变的比较小,即使中间哪一天的丢了也没事,只要最后一天,和第一天的在就行。 4、网站服务器每天产生的日志数量较大,请问如何备份? 使用 logrotate 滚动日志 split 大文件切分处理 shell 脚本处理日志 5、简述 Raid 0、Raid 1、Raid 5 的特点与原理。 RAID 等级 最少硬盘 最大容错 可用容量 读取性能 写入性能 安全性 目的 应用产业 单一硬盘 (参考) 0 1 1 1 无 JBOD 1 0 n 1 1 无(同 RAID 0) 增加容量 个人(暂时) 存储备份 0 2 0 n n n 一个硬盘异常,全部硬盘都会异常 追求最大容量、速度 视频剪接缓存用途 1 2 n-1 1 n 1 高,一个正常即可 追求最大安全性 个人、企业备份 5 3 1 n-1 n-1 n-1 中下至中 追求最大容量、最小预算 个人、小型企业备份 6 4 2 n-2 n-2 n-2 中至中高,仅安全性较 RAID 5 高 同 RAID 5,但较安全 个人、企业备份 10 4 高 综合 RAID 0/1 优点,理论速度较快 大型数据库、服务器 50 6 高 提升资料安全 60 8 高 提升资料安全 6、简述 Raid6、Raid 10 的特点与原理。 与 RAID 5 相比,RAID 6增加第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,任意两块磁盘同时失效时不会影响数据完整性。RAID 6 需要分配给奇偶校验信息更大的磁盘空间和额外的校验计算,相对于 RAID 5 有更大的 IO 操作量和计算量,其“写性能”强烈取决于具体的实现方案,因此RAID 6通常不会通过软件方式来实现,而更可能通过硬件方式实现。
JOBCHER BLOG
yaml 语法
yaml 语法 我们使用 YAML 是因为它像 XML 或 JSON 是一种利于人们读写的数据格式. 此外在大多数变成语言中有使用 YAML 的库.YAML 语法的基本概述, 它被用来描述一个 playbooks(我们的配置管理语言). 基本的 YAML 对于 Ansible, 每一个 YAML 文件都是从一个列表开始. 列表中的每一项都是一个键值对, 通常它们被称为一个 “哈希” 或 “字典”. 所以, 我们需要知道如何在 YAML 中编写列表和字典. YAML 还有一个小的怪癖. 所有的 YAML 文件(无论和 Ansible 有没有关系)开始行都应该是 —. 这是 YAML 格式的一部分, 表明一个文件的开始. 1--- 2# 一个美味水果的列表 3- Apple 4- Orange 5- Strawberry 6- Mango
JOBCHER BLOG
iptables 基础知识
iptables 基础知识 内核包过滤与 NAT 管理工具.是 linux 系统中在用户空间中运行的运来配置内核防火墙的工具。它可以设置,维护和检查 linux 内核中的 ipv4 包过滤规则和管理网络地址转换(NAT)。 ipatbles 命令仅支持 ipv4,如果使用的 IP 协议是 ipv6 则需要使用专门的管理工具 ip6tables。 常用参数 参数 作用 -t<表> 指定要操纵的表 -A 向规则链中追加条目 -D 从规则链中删除条目 -I 向规则链中插入条目 -R 替换规则链中的相应条目 -L 显示规则链中的已有条目 -F 清除规则链中的现有条目。不改变规则链的默认目标策略 -Z 清空规则链中的数据包计数器和字节计数器 -N 创建新的用户自定义规则链 -P 定义规则链中的默认目标(策略) -h 显示帮助信息 -p<协议> 指定要匹配的数据包的协议类型 -s<源地址> 指定要匹配的数据包的源 IP 地址 -j<目标> 指定要跳转的目标 -i<网络接口> 指定数据包进入本机的网络接口 -o<网络接口> 指定数据包离开本机做使用的网络接口 -c<包计数> 在执行插入、追加和替换操作时初始化包计数器和字节计数器 参考实例 显示内核当前的 filter 表: 1iptables -L 显示内核当前的 nat 表: 1iptables -L -t nat 禁止本机对 192.
JOBCHER BLOG
网络基础知识
网络基础知识 1、简述 ISO/OSI 七层模型的分层与作用 分层 作用 应用层 应用系统,提供用户服务 例如:HTTP、HTTPS、FTP、Telnet、SSH、SMTP、POP3 表示层 把数据转换为能与接收者的系统格式兼容并适合传输的格式,数据表示,加密,压缩 会话层 负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接。确定数据是否需要进行网络传递 分流网络传递还是本地保存 传输层 对数据分组,对报文进行分组(发送时)、组装(接收时)提供传输协议的选择:TCP (传输控制协议) :可靠的,面向连接的传输协议 (可靠,准确) (慢)UDP (用户数据报协议) :不可靠的,面向无连接的传输协议 (快) (不可靠)。端口封装,差错校验,滑动窗口,留空 网络层 网络层(Network Layer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。网络表头包含了网络资料。例如:互联网协议(IP)等。1.IP 地址编址 2.路由选择 3.静态路由 4.动态路由 数据链路层 数据链路层(Data Link Layer)负责网络寻址、错误侦测和改错。1.MAC 地址编址 2.MAC 地址寻址 3.差错校验 物理层 物理层(Physical Layer)在局域网上发送数据帧(Data Frame)1.数据实际传输 2.电气特性定义 2、TCP/IP 四层模型与作用? 分层 协议 应用层 HTTP、HTTPS、FTP、Telnet、SSH、SMTP、DNS 传输层 TCP、UDP 网络层 ICMP、IGMP、IP、ARP、RARP 数据链路层、物理层 PPP、PPPOE 3、TCP 协议与 UDP 协议工作在哪一层,作用是什么? 传输层,对报文进行分组(发送时)、组装(接收时)提供 当进程需要传输可靠的数据时应使用 TCP,当进程需要高效传输数据,可以忽略可靠性时应使用 UDP 协议。 4、简述 TCP 三次握手的过程。 第一次握手:Client 将标志位 SYN 置为 1,随机产生一个值 seq=J,并将该数据包发送给 Server,Client 进入 SYN_SENT 状态,等待 Server 确认。 第二次握手:Server 收到数据包后由标志位 SYN=1 知道 Client 请求建立连接,Server 将标志位 SYN 和 ACK 都置为 1,ack=J+1,随机产生一个值 seq=K,并将该数据包发送给 Client 以确认连接请求,Server 进入 SYN_RCVD 状态。 第三次握手:Client 收到确认后,检查 ack 是否为 J+1,ACK 是否为 1,如果正确则将标志位 ACK 置为 1,ack=K+1,并将该数据包发送给 Server,Server 检查 ack 是否为 K+1,ACK 是否为 1,如果正确则连接建立成功,Client 和 Server 进入 ESTABLISHED 状态,完成三次握手,随后 Client 与 Server 之间可以开始传输数据了。 5、简述 TCP 包头的内容。 源端口和目的端口:各占 2 个字节,分别写入源端口和目的端口。IP 地址 + 端口号就可以确定一个进程地址
JOBCHER BLOG
linux服务基础知识
linux 服务基础知识 1、哪些设置能够提升 SSH 远程管理的安全等级 2、ssh 连接时认证时间过长如何解决? 3、scp 和 rsync 进行远程文件复制有什么区别? 4、请描述通过 DHCP 服务器获取 IP 地址的过程。 5、简单描述 FTP 的主动模式和被动模式的区别? 6、集群环境中,如何保证所有服务器之间的时间误差较小。 7、请描述用户访问网站时 DNS 的解析过程。 8、解释权威 DNS 和递归 DNS 的含义,并描述智能 DNS 的实现原理。 9、公司里有一台服务器,需要在上面跑两个网站,并且其中一个网站需要更换新域名,请问如何处理? 网站1:www.a.com 网站2:www.b.com(旧) www.d.com(新) 10、简述 Apache 的三种工作模式? 11、请写出工作中常见的 Apache 优化策略。 12、有哪些技术可以提高网站的安全和效率? 13、Apache 和 Nginx 各有什么优缺点,应该如何选择? 14、为什么 Nginx 的并发能力强,资源消耗低? 15、写出几个 Nginx 的常用模块,并描述其功能。 16、请解释 Nginx 是如何连接 PHP 进行页面解析的? 17、请描述 Nginx 和 Tomcat 之间的数据传输过程? 18、请写出几个常见的 HTTP 状态码,并解释出现原因。
JOBCHER BLOG
mysql基础知识
mysql 基础知识 1、库表 student.report,有 3 个字段,姓名、学科、成绩,记录如下,根据要求完成 SQL 语句: Name Subject Result 李白 Math 95 张三 English 83 王五 Math 79 李六 Math 85 张二 English 74 查询姓李的同学的个数。 查询表中数学成绩大于 80 的前 2 名同学的名字,并按分数从大到小的顺序排列。 2、MYSQL 集群一主多从,主库宕机,如何合理切换到从库,其它从库如何处理? 3、单台 MySQL 达到性能瓶颈时,如何击碎性能瓶颈? 4、MySQL 什么时候创建索引? 5、误操作 drop 语句导致数据库数据破坏,请给出恢复的实际大体步骤。 6、如何保证 Redis 能永久保存数据? 7、如何利用 Redis 对 MySQL 进行性能优化?