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 📜: 微信小程序 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 Ǵ…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...