LiangGaRy-学习笔记-Day22
1、shell工具-tput
这个是tput bash工具
具体的操作如下:
- tput clear:清屏
- tput cup Y X
- 第Y行,第X列的位置
- tput bold:字体加粗
- tput sgr0 : 重置命令
- tput setaf n
- n:代表数字0-7
- 0黑色
- 1红色
- 2绿色
- 3黄色
- 4蓝色
- 5洋红色
- 6青色(蓝绿色)
- 7白色
- n:代表数字0-7
- tput rew:设置小标题
作用:通过Terminfo数据库可以对终端会话进行初始化或更改终端功能,如移动或更改光标、更改文本属性,以及清除终端屏幕的特定区域。
语法:tput+选项
1.1、shell脚本-LAMP+Wordpress
- 安装httpd
- 安装MySQL
- 安装PHP
- 安装wordpress
#编写脚本
[root@Node1 sh]# vim lamp.sh
#!/bin/bash
#Time:2023年6月12日
#Author By LiangGaRy
#Usage:结合tput简单部署lamp脚本
##############################设定函数
clean_OS(){#卸载与挂载光盘umount /dev/cdrom /mnt/cdrom &>> /dev/nullmount /dev/cdrom /mnt/cdrom &>> /dev/null#删除原来的yum的进程pidrm -rf /var/run/yum.pid &>> /dev/mull#请空缓存与重新生成yum 缓存yum clean all &>> /dev/nullyum makecache fast &>/dev/null
}
http_install(){yum -y install httpd &>> /dev/nullsystemctl restart httpd &>> /dev/nullif [ $? -eq 0 ];thenecho "当前httpd 安装成功;"elseecho "httpd安装失败,请手工排查问题 "fi
}
mysql_install(){yum -y install mariadb mariadb-server &>> /dev/nullsystemctl restart mariadb &>> /dev/nullif [ $? -eq 0 ];thenecho "当前mariadb 安装成功;"elseecho "mariadb安装失败,请手工排查问题 "fi
}#实现清屏功能
tput clear#定位光标的位置
tput cup 3 15#设置颜色
tput setaf 3
echo “LAMP安装面板”#重置命令
tput sgr0#定位光标的位置
tput cup 5 17#设置一个小标题
tput rev
echo "LAMP 管理面板"#定位光标的位置
tput cup 7 15
echo "1.安装httpd"
tput cup 8 15
echo "2.安装MySQL"
tput cup 9 15
echo "3.安装PHP"
tput cup 10 15
echo "4.安装WORDPRESS"#设置字体加粗
tput bold
tput cup 12 15
read -p "请输入你的选择【1-4】:" choice
case $choice in
1)echo "httpd 开始安装中........"#然后开始调用函数clean_OShttp_install
;;
2)clean_OSecho "MySQL 开始安装中........"mysql_install
;;
3)clean_OSecho "PHP 开始安装中........"php_install
;;
4)clean_OSecho "Wordpress 开始安装中........"wordpress_install
;;
*)echo "请输出数字1-4!!"
;;
esac
实现功能查看一下
2、计划任务
计划任务,就是让系统在将来指定时间执行某些任务(程序);任务可以周期性执行,也可以仅仅执行一次
- 例如:早上6:30分–>执行巡检任务;
- 注意事项:
- 要使计划任务在指定时间内自动运行,服务器必须是开机状体的
2.1、at服务讲解
定义:指定某个时间一次性执行某个任务;依赖于系统后台进程atd进程
- 在指定的日期、时间点自动的执行预先设置的一些命令操作,属于一次性计划任务
- 系统服务的名称:/etc/init.d/atd
- 设置格式:at [HH:MM] [yyyy-mm-dd]
- atq命令:查询当前设置的at任务列表 同 at -l
- atrm命令:删除指定任务编号的at任务 atrm 编号 同 at -d
- at -c 任务号 查看计划任务的具体内容(和at计划任务文件/var/spool/at/以a开头的文件内容相同)
两个文件:
- /etc/at.deny:只有该名单里面的人不可以使用
- /etc/at.allow:只用该名单里面的人可以使用(这个文件一般不存在,如果需要,自行创建)
案例说明:
#启动atd进程
[root@Node1 ~]# systemctl start atd#查看服务状态
[root@Node1 ~]# systemctl status atd#查看是否开机自启
[root@Node1 ~]# systemctl is-active atd
active#确保时间是准确的
[root@Node1 ~]# date
Wed Jul 12 15:23:53 CST 2023#添加一次性计划任务-->添加ctrl+d结束
[root@Node1 ~]# at 15:30
at> echo "hello the word"
at> <EOT>
job 1 at Wed Jul 12 15:30:00 2023#查看一次性任务列表
[root@Node1 ~]# at -l
1 Wed Jul 12 15:30:00 2023 a root#输出的信息说明#1:任务编号:#Wed Jul 12 15:30:00 2023:执行的时间 #a:队列#root:执行者root#在添加一次性任务
at> echo "hello liangjiawei"
at> echo "welcome to Linux"
at> <EOT>
job 2 at Wed Jul 12 16:00:00 2023#指定一个时间
[root@Node1 ~]# at 11:00 2023-10-31
at> echo lalal
at> <EOT>
job 3 at Tue Oct 31 11:00:00 2023
You have mail in /var/spool/mail/root#指定这个时间后的30分钟执行
[root@Node1 ~]# at now +30min
at> echo aaa
at> <EOT>
job 4 at Wed Jul 12 16:04:00 2023#指定三天后的计划任务
[root@Node1 ~]# at 18:00 +3days
at> echo bbb
at> <EOT>
job 5 at Sat Jul 15 18:00:00 2023#查看计划任务
[root@Node1 ~]# at -l
2 Wed Jul 12 16:00:00 2023 a root
3 Tue Oct 31 11:00:00 2023 a root
4 Wed Jul 12 16:04:00 2023 a root
5 Sat Jul 15 18:00:00 2023 a root#删除计划任务
[root@Node1 ~]# at -d 3
[root@Node1 ~]# at -l
2 Wed Jul 12 16:00:00 2023 a root
4 Wed Jul 12 16:04:00 2023 a root
5 Sat Jul 15 18:00:00 2023 a root#查看计划任务的内容
[root@Node1 ~]# at -c 2
#!/bin/sh
# atrun uid=0 gid=0
.........
echo "hello liangjiawei"
echo "welcome to Linux"
2.2、备份说明
完全备份:
- 所谓全备份就是用一盘磁带对整个系统进行完全备份,包括系统和数据。
- 特点:
- 最常见的备份类型。备份完整数据,恢复方便
- 备份耗时久,且反复备份,占用存储空间较多
增量备份:
- 就是每次备份的数据只是相当于上一次备份后增加的和修改过的数据。
- 特点:
- 备份数据量小,备份速度快。
- 相对而言,所需恢复时间比完全备份或差异备份所需时间长。
差异备份
- 就是每次备份的数据是相对于上一次全备份之后新增加的和修改过的数据。
- 特点:
- 备份数据量小,备份速度比完全备份快。
- 相对而言,恢复数据所耗费的时间比完全备份时间长。如果大量数据发生变化,差异备份所耗费的时间比增量备份时间长
事物备份:
- 备份数据库中的事务日志。事务日志是数据库中已发生的所有修改和执行每次修改的事务的一连串记录。
- 特点:
- 使用事务日志备份,可将数据恢复到精确的故障点。
永久增量备份
- 永久增量备份常被“磁盘-磁盘-磁带”备份系统使用。其基本的方式和增量备份相似,永久增量备份是从所有数据的全备份初始的,以后只进行增量备份。
- 特点:
- 备份数据量小,备份速度比增量备份快。
- 相对而言,适用于单个应用数据量大、执行一次完全备份比较费时费力的应用场景
2.3、crond服务
作用:执行周期性计划任务
- 按照预先设置的时间周期(分钟、小时、天…)重复执行用户执行的命令操作,这属于周期计划人任务
- 服务名称:/etc/init.d/crond
- 主要设置文件:用户定义的设置,位于文件/etc/spool/cron/用户名
- cron服务配置文件:/etc/crontab(包含三部分:注释、环境变量、cron命令)
- cron服务日志文件:/var/log/cron
- 管理cron计划任务:
- 编辑计划任务:crontab -e [-u 用户名]
- 查看计划任务:crontab -l [-u 用户名]
- 删除计划任务:crontab -r [-u 用户名 ]
- root用户可以管理制定的用户计划任务,其他用户只能管理自己的计划任务
- 语法:
- 分时日月周命令
- 时间的表示方式:
- 型号*:表示范围内任意时间
- 逗号,:表示间隔多个不连续的时间点
- 横杆-:表示一个连续的时间范围
- /n:表示指定间隔的时间频率
0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一、三、五的8点30分
0 8-18 * * * 8点到18点整
0 12 */3 * * 每隔3天的12点整
crontab命令
- 作用:设定与查看周期性计划任务
- 语法:crontab+选项+时间
- 选项:
- -u:指定用户
- -l:列出详细任务
- -r:删除计划任务
- -e:编辑计划任务
#启动crond服务
[root@Node1 ~]# systemctl start crond
[root@Node1 ~]# systemctl enable crond#编辑任务
[root@Node1 ~]# crontab -uroot -e
no crontab for root - using an empty one
1 * 5 * * echo aaa#查看计划任务
[root@Node1 ~]# crontab -l
1 * 5 * * echo aaa#指定liangjiawei用户进行编辑
[root@Node1 ~]# crontab -uliangjiawei -e
no crontab for liangjiawei - using an empty one
1 2 4 3 * echo lll#再次查看
[root@Node1 ~]# crontab -uliangjiawei -l
1 2 4 3 * echo lll#每天晚上23:00重启httpd
0 23 * * * /etc/init.d/httpd restart#每隔五分钟执行
*/5 * * * * echo aaa >> a.txt#每周的135的12点和18点重启httpd
0 12,18 * * 1,3,5 /etc/init.d/httpd restart#每天都饿12点到18点重启apache
0 12-18 * * * /etc/init.d/httpd restart
系统级别的计划任务
- 系统会清理系统缓存
- 系统会临时清理文件
- 系统会采集系统信息
#查看系统级别的定时任务
[root@Node1 ~]# ls /etc/cron
cron.d/ cron.deny cron.monthly/ cron.weekly/
cron.daily/ cron.hourly/ crontab#文件说明如下:
cron.deny #控制用户是否能做计划任务的文件;
cron.monthly/ #每月执行的脚本;
cron.weekly/ #每周执行的脚本;
cron.daily/ #每天执行的脚本;
cron.hourly/ #每小时执行的脚本;
crontab #主配置文件 也可添加任务;
计划任务不执行的原因
- 脚本本来编写不对,没有办法执行
- 执行环境不对;没有执行权限
- 系统时间不对,导致在规定的时间上不执行
- crontab守护进程宕机导致不执行
日志:
/var/log/message #系统默认的日志信息
/var/log/secure #ssh登录服务
/var/log/maillog #邮件相关
/var/log/cron #定期执行任务相关的日志
/var/log/boot.log
/var/log/dmesg
2.4、watch命令
作用:可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令
语法:watch +选项 + 命令
选项:
- -n:指定间隔时间,默认是2秒
- -c:清屏显示结果
- –color:显示颜色
#每隔一秒高亮显示网络链接数的变化情况
[root@Node1 sh]# watch -n 1 -d netstat -ant
Every 1.0s: netstat -ant Wed Jul 12 16:31:04 2023
............
3、脚本练习
3.1、查看系统一共多少用户
排查所有用户的计划任务
#编写脚本
[root@Node1 sh]# vim user_count.sh
#!/bin/bash
#Time:2023年6月12日
#Author By LiangGaRy
#Userage:用于统计用户以及计划任务
#############################
name_total=$(wc -l < /etc/passwd)
names=$(cat /etc/passwd | awk -F : '{print $1}')
echo "当前系统中一共有$name_total个用户"
for i in $names
docrontab -u$(name) -lif [ $? -eq 0 ];thenecho "$i 有计划任务;"fi
done#执行查看
[root@Node1 sh]# bash user_count.sh
3.2、计划任务脚本
自动输入时间,产生计划任务
[root@Node1 sh]# vim auto_cron.sh
#!/bin/bash
#Time:2023年6月12日
#Usage:用户自己输入自己想要的计划任务
########################
read -p "请输入分钟信息(00-59):" min
read -p "请输入小时信息(00-24):" hour
read -p "请输入日期信息)01-31):" date
read -p "请输入月份信息(01-12):" month
read -p "请输入信息信息(00-06):" week
read -p "请输入计划任务需要执行的命令或者脚本:" program
echo "$min $hour $date $month $week $grogram" >> /etc/crontab
相关文章:

LiangGaRy-学习笔记-Day22
1、shell工具-tput 这个是tput bash工具 具体的操作如下: tput clear:清屏tput cup Y X 第Y行,第X列的位置 tput bold:字体加粗tput sgr0 : 重置命令tput setaf n n:代表数字0-7 0黑色1红色2绿色3黄色4蓝…...

数据库横表和竖表有什么区别
横表和竖表是描述数据库表结构的两种形式,它们之间的主要区别在于数据的组织方式和用途。 横表(宽表): 横表是一种常见的表结构,其特点是每一行数据包含所有相关属性,字段通常作为列出现。横表中的每行代表…...

哈希表--day1--基本理论介绍
文章目录 哈希表哈希函数哈希碰撞拉链法线性探测法 常见的三种哈希函数数组setmap 总结 哈希表 Hash table是根据关键码的值来直接进行访问的数据结构。 其实直白来讲其实数组就是一张哈希表,不过其索引是十分简单的,我们通过0来访问num[0],…...

基于OpenMV的疲劳驾驶检测系统的设计
一、前言 借助平台将毕业设计记录下来,方便以后查看以及与各位大佬朋友们交流学习。如有问题可以私信哦。 本文主要从两个方面介绍毕业设计:硬件,软件(算法)。以及对最后的实验结果进行分析。感兴趣的朋友们可以评论区…...

chatgpt赋能python:使用Python来寻找两个列表不同元素的方法
使用Python来寻找两个列表不同元素的方法 在编写Python程序时,我们经常需要比较两个列表的元素,找出它们之间的不同之处。在搜索引擎优化(SEO)方面,这种比较对于找出两个网站内容的差异也非常有用。在这篇文章中&…...

简单学生管理系统
简单学生管理系统(Java)_封奚泽优的博客-CSDN博客https://blog.csdn.net/weixin_64066303/article/details/130667107?spm1001.2014.3001.5501 转载请注明出处,尊重作者劳动成果。 目录 前期准备: 数据库的连接: 用户账号类:…...

图像金字塔
图像金字塔是由一幅图像的多个不同分辨率的子图构成的图像集合。是通过一个图像不断的降低采样率产生的,最小的图像可能仅仅有一个像素点。下图是一个图像金子塔的示例。从图中可以看到,图像金字塔是一系列以金字塔形状排列的、自底向上分辨率逐渐降低…...

Springboot整合Camunda工作流引擎实现审批流程实例
环境:Spingboot2.6.14 camunda-spring-boot-starter7.18.0 环境配置 依赖配置 <camunda.version>7.18.0</camunda.version> <dependency><groupId>org.camunda.bpm.springboot</groupId><artifactId>camunda-bpm-spring-boo…...

PHP设计模式21-工厂模式的讲解及应用
文章目录 前言基础知识简单工厂模式工厂方法模式抽象工厂模式 详解工厂模式普通的实现更加优雅的实现 总结 前言 本文已收录于PHP全栈系列专栏:PHP快速入门与实战 学会好设计模式,能够对我们的技术水平得到非常大的提升。同时也会让我们的代码写的非常…...

【玩转Docker小鲸鱼叭】理解Docker的核心概念
Docker核心概念 Docker有三大核心概念:镜像(Image)、容器(Container)、仓库(Repository) 1、镜像(Image) Docker镜像 是我们创建和运行Docker容器的基础,它…...

Eureka 心跳和服务续约源码探秘——图解、源码级解析
🍊 Java学习:社区快速通道 🍊 深入浅出RocketMQ设计思想:深入浅出RocketMQ设计思想 🍊 绝对不一样的职场干货:大厂最佳实践经验指南 📆 最近更新:2023年5月25日 🍊 点赞 👍 收藏 ⭐留言 📝 都是我最大的动力! 文章目录 分布式系统的心跳机制心跳机制的实…...

代码随想录二刷 530 二叉搜索树的最小绝对差 98. 验证二叉搜索树 700. 二叉搜索树中的搜索
530 二叉搜索树的最小绝对差 代码如下 func getMinimumDifference(root *TreeNode) int { var pre *TreeNode res : math.MaxInt var traverse func(root * TreeNode) traverse func(root * TreeNode) { if root nil { return } traverse(root.Left) …...

Docker安装——CentOS7.6(详细版)
ps:docker官网 在 CentOS 上安装 Docker 引擎 |官方文档 () 一、确定版本(必须是7以上版本) cat /etc/redhat-release 二、卸载旧版本(或者之前装过,没有安装过就不用管了) (root用…...

论信息系统项目的整体管理(范文)
论信息系统项目的整体管理(范文) 【摘要】 2016年10月,XX省卫生健康委启动了XX省分级转诊服务平台建设项目,我在项目中担任项目经理,负责项目的全面管理工作。该平台作为全省上下级医院转诊的信息化通道,…...

【音视频处理】音频编码AAC详解,低码率提高音质?
大家好,欢迎来到停止重构的频道。 本期我们介绍音频编码格式AAC。 AAC是音频最常用的编码格式之一,几乎所有的播放器都支持这个编码格式。 其他音频编码格式都是类似的,只是某些细节存在差别,如压缩算法、某些音频参数存在限制…...

逆函数学习
逆函数 给定关系 R ⊆ X Y R\subseteq X\times Y R⊆XY,颠倒 R R R的所有有序偶可以得到 R R R的逆关系 R ~ ⊆ Y X \tilde{R}\subseteq Y\times X R~⊆YX 但是对于函数 f : X → Y f:X\to Y f:X→Y而言,其逆关系 f ~ \tilde{f} f~可能不是 Y Y Y到…...

代码审计——SSRF详解
为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 漏洞描述02 审计要点03 漏洞特征04 漏洞案例05 修复方案 01 漏洞描述 服务端请求伪造攻击(SSRF)也成为跨站点端口攻击,是由于一些应用在向第三方主机请求资源时提…...

搭建Scala开发环境
一、Windows上安装Scala 1、到Scala官网下载Scala Scala2.13.10下载网址:https://www.scala-lang.org/download/2.13.10.html 单击【scala-2.13.10.msi】超链接,将scala安装程序下载到本地 2、安装Scala 双击安装程序图标,进入安装向导&…...

BLIP和BLIP2
文章主要是对BLIP2 (使用冻结图像编码器和大型语言模型的Bootstrapping语言图像预训练)论文的阅读笔记,也对BLIP(用于统一视觉语言理解和生成的Bootstrapping语言图像预训练)算法进行了简单的介绍。 文章:…...

微信小程序开发实战 ⑨(TabBar)
作者 : SYFStrive 博客首页 : HomePage 📜: 微信小程序 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 Ǵ…...

微前端探秘:初始微前端、现有方案和未来趋势
初识微前端 微前端是什么 概念: 微前端是指存在于浏览器中的微服务。 微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将单页面前端应用由单一的单体应用转变为把多个小型前端应用聚合为一体的应用。这就意味着前端应用…...

运维(SRE)成长之路-第2天 文本编辑工具之神VIM
vi和vim简介 在Linux中我们经常编辑修改文本文件,即由ASCII, Unicode 或其它编码的纯文字的文件。之前介绍过nano,实际工作中我们会使用更为专业,功能强大的工具 文本编辑种类: 全屏编辑器:nano(字符工具…...

45从零开始学Java之详解static修饰符、静态变量和静态方法
作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在前一篇文章中,壹哥给大家讲解了abstract关键字,从而我们掌握了抽象类与抽象…...

电商超卖,从业务到设计
编辑导语:超卖这一概念的定义可以从不同层面进行阐述,比如平台层面、渠道层面、仓库层面等。而假设因超卖导致订单难以履行,则容易让用户体验“打折”。为什么有时电商超卖的现象会发生?可以从哪些角度来降低超卖导致的风险&#…...

【MySQL】表的约束
表的约束 表的约束1. 空属性2. 默认值3. 列描述4. zerofill(自动补零)5. 主键—primary key5.1 复合主键 6. 自增长—auto_increment7.唯一键 --- unique8. 外键 --- foreign key…reference9. 综合案例 表的约束 真正约束字段的是数据类型,…...

【计算机网络】第一章 概述(下)
文章目录 第一章 概述1.5 计算机网络的性能指标1.5.1 速率1.5.2 带宽1.5.3 吞吐量1.5.4 时延 1.6 计算机网络体系结构1.6.1 常见的体系结构1.6.2 分层的必要性1.6.4 体系结构中的专用术语 1.8 习题 第一章 概述 1.5 计算机网络的性能指标 常用的 计算机网络 的性能指标有以下 …...

化工园区人员全过程轨迹化安全解决方案
1、项目背景 化工园区化工厂是生产安全重点单位,对人员定位管理需求强烈。对人员定位主要需求是:一般区域人数统计、人员轨迹、重点区域人员实时精准定位。 华安联大安全化工园区人员全过程轨迹化安全解决方案通过人员实时定位管理、移动轨迹追溯、险情…...

Java泛型中的T、E、K、V、?通配符,你确定都了解吗?
目录 前言 泛型带来的好处 泛型中通配符 小结 前言 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。 泛型的本质是参数化类型,也就是说所操…...

Jenkins部署及使用
Jenkins 1.定义 1.Jenkins是一款开源CI/CD软件,用于自动化各种任务,包括构建、测试和部署软件 1.CI/CD 1.CI:持续集成(Continuous Integration) 1.协同开发是目前主流的开发方式,一般由多位开发人员同时处理同一个应用的不同模块…...

UML类图(二)
相信希望,相信自己 上一章简单介绍了 设计模式的原则(一), 如果没有看过,请观看上一章 本文参考文章: 常见UML符号详解 UML (Unified modeling language) 统一建模语言,是一种用于软件系统分析和设计的语言工具, 它用于帮助软件开发人员进行…...