LiangGaRy-学习笔记-Day22

news2025/4/22 15:19:27

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白色
  • 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/null
        mount /dev/cdrom /mnt/cdrom &>> /dev/null
        #删除原来的yum的进程pid
        rm -rf /var/run/yum.pid &>> /dev/mull
        #请空缓存与重新生成yum 缓存
        yum clean all &>> /dev/null
        yum makecache fast &>/dev/null
}
http_install(){
        yum -y install httpd &>> /dev/null
        systemctl restart httpd &>> /dev/null
        if [ $? -eq 0 ];then
                echo "当前httpd 安装成功;"
        else
                echo "httpd安装失败,请手工排查问题 "
        fi
}
mysql_install(){
        yum -y install mariadb mariadb-server &>> /dev/null
        systemctl restart mariadb &>> /dev/null
        if [ $? -eq 0 ];then
                echo "当前mariadb 安装成功;"
        else
                echo "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_OS
        http_install
;;
2)
        clean_OS
        echo "MySQL 开始安装中........"
        mysql_install
;;
3)
        clean_OS
        echo "PHP 开始安装中........"
        php_install
;;
4)
        clean_OS
        echo "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
do
        crontab -u$(name) -l
        if [ $? -eq 0 ];then
        echo "$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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/639495.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Protobuf速成指南】Map类型的使用

文章目录 2.4 map 类型一、 基本认识二、map相关函数4.3 contact2.4的改写 2.4 map 类型 本系列文章将通过对通讯录项目的不断完善&#xff0c;带大家由浅入深的学习Protobuf的使用。这是Contacts的2.4版本&#xff0c;在这篇文章中将带大家学习Protobuf的 map 语法&#xff0c…

Java自制绘图软件

引言 在大连时接触了Java&#xff0c;Java非常优雅&#xff0c;我非常喜欢。期末老师要做一个项目作品&#xff0c;看着windows自带的画图软件&#xff0c;我决定自己动手做一个绘图软件。经过无数次界面调试&#xff0c;刷新层叠关系令我爆肝了一个月&#xff0c;最终完成了这…

没有AI歌手一键包,纯纯的算法项目

项目地址&#xff1a; https://github.com/PlayVoice/so-vits-svc-5.0 来源丨元语音技术 本项目的目标群体是&#xff1a;深度学习初学者&#xff0c;具备Pyhon和PyTorch的基本操作是使用本项目的前置条件&#xff1b; 本项目旨在帮助深度学习初学者&#xff0c;摆脱枯燥的纯…

2023年6月最新|大屏可视化

大屏可视化 一、可视化适配 大屏下显示一般都是16:9尺寸 1920*1080 &#xff0c;做适配也就是在这个比例的基础上进行的 方案一&#xff1a;打开VSCode终端&#xff0c;下载flexible npm i lib-flexible修改源码 要修改的源码的路径&#xff1a; 项目/mode_modules/lib-fl…

Springboot+Vue服务器盲盒活动

文章目录 一、项目要求二、说明文档1、用户抽奖主页/raffle2、多种奖品链接1、奖品1 discont /discount2、奖品2 CPU upgrade /cpu3、奖品3 Memory upgrade /memory4、奖品4 Increase duration /duration5、奖品5 Send to server /server6、奖品6 Configuration upgrade /upgra…

信必优成功案例-全球Tops汽车技术供应商

该集团是全球Tops汽车技术供应商&#xff0c;业务范围涵盖了汽油系统、柴油系统、汽车底盘控制系统、汽车电子驱动、起动机与发电机、电动工具、家用电器、传动与控制技术、热力技术和安防系统等。信必优于2021年开始为该客户服务&#xff0c;参与了客户多个项目&#xff0c;以…

Android进阶 四大组件的工作过程(二):Service的工作过程

Android进阶 四大组件的工作过程&#xff08;二&#xff09;&#xff1a;Service的工作过程 导语 本片文章主要是来介绍Service组件的工作过程的&#xff0c;主要分成Service的启动和Service的绑定两个部分来讲。上一篇文章我们已经介绍了Activity的工作工程&#xff0c;而Ser…

Windows软件:如何安装ideaIU-2020.3.3并使用无限重置插件达到永久使用

​前言&#xff1a; ​在我们做SpringBoot Java项目时&#xff0c;一个好的开发工具可以让我们的效率达到事半功倍&#xff0c;早期的eclipse已经无法满足我们日常需求&#xff0c;当然idea集成开发工具在很早前就已经进入市场&#xff0c;如今取得了无法撼动的地位&#xff0c…

度学习pytorch实战六:ResNet50网络图像分类篇自建花数据集图像分类(5类)超详细代码

1.数据集简介、训练集与测试集划分 2.模型相关知识 3.model.py——定义ResNet50网络模型 4.train.py——加载数据集并训练&#xff0c;训练集计算损失值loss&#xff0c;测试集计算accuracy&#xff0c;保存训练好的网络参数 5.predict.py——利用训练好的网络参数后&#xff0…

为Nomad Web使用添加快捷应用图标

大家好&#xff0c;才是真的好。 上次我们说到Nomad Web已经更新到了1.0.8版本&#xff0c;作为未来的“Notes客户机”&#xff08;运行在浏览器中&#xff09;&#xff0c;Nomad Web的更新迭代很快。从1.0.5版本开始&#xff0c;就可以直接部署在Domino服务器上&#xff0c;而…

STM32MP157_PRO开发板的第一个驱动程序

文章目录 目的&#xff1a;为什么编译驱动程序之前要先编译内核&#xff1f;编译内核编译设备树编译安装内核模块编译内核模块安装内核模块到 Ubuntu 的NFS目录下备用 安装内核和模块到开发板上编译 led 驱动在开发板安装驱动模块下载驱动程序安装驱动模块 目的&#xff1a; 在…

Netty实战(十三)

WebSocket协议&#xff08;一&#xff09; 一、什么是WebSocket 协议二、简单的 WebSocket 程序示例2.1 程序逻辑2.2 添加 WebSocket 支持2.3 处理 HTTP 请求2.4 处理 WebSocket 帧 一、什么是WebSocket 协议 WebSocket 协议是完全重新设计的协议&#xff0c;旨在为 Web 上的双…

读书笔记-《ON JAVA 中文版》-摘要16[第十六章 代码校验]

文章目录 第十六章 代码校验1. 测试1.1 单元测试1.2 JUnit1.3 测试覆盖率的幻觉 2. 前置条件2.1 断言&#xff08;Assertions&#xff09;2.2 Java 断言语法2.3 Guava 断言2.4 使用断言进行契约式设计2.4.1 检查指令2.4.2 前置条件2.4.3 后置条件2.4.4 不变性2.4.5 放松 DbC 检…

Frida技术—逆向开发的屠龙刀

简介 Frida是一种基于JavaScript的动态分析工具&#xff0c;可以用于逆向开发、应用程序的安全测试、反欺诈技术等领域。Frida主要用于在已安装的应用程序上运行自己的JavaScript代码&#xff0c;从而进行动态分析、调试、修改等操作&#xff0c;能够绕过应用程序的安全措施&a…

路径规划算法:基于人工电场优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于人工电场优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于人工电场优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…

【Leetcode60天带刷】day06哈希表——242.有效的字母异位词,349. 两个数组的交集,202题. 快乐数,1. 两数之和

题目&#xff1a;242.有效的字母异位词 Leetcode原题链接&#xff1a;242. 有效的字母异位词 思考历程与知识点&#xff1a; 如果一个字母一个字母的找&#xff0c;也就是暴力&#xff0c;用两个for的话时间复杂度是O(N^2)&#xff1b; 我们可以换个思路&#xff0c;a~z一共…

Telerik Report Server R2 2023

Telerik Report Server R2 2023 仪表报告项-使用仪表或类似表盘的显示提供数据的可视化表示。 报告项上的AccessibleRole属性-ARIA(可访问的富Internet应用程序)支持已显著改进。在Web上&#xff0c;当启用了辅助功能时&#xff0c;呈现的报表项包含预定义的辅助功能角色。这样…

(七)矢量数据的空间分析——叠置分析①

矢量数据的空间分析——叠置分析 叠置分析是将代表不同主题的各个数据层面进行叠置&#xff0c;产生一个新的数据层面&#xff0c;叠置结果综合了原来两个或多个层面要素所具有的属性。 叠置分析不仅生成了新的空间关系&#xff0c;而且还将输入的多个数据层的属性联系起来产…

随机的乐趣和游戏

1、猜数字游戏 #GuessingGame.py import random the_number random.randint(1, 10) print("计算机已经在1到10之间随机生成了一个数字&#xff0c;") guess int(input("请你猜猜是哪一个数字: ")) while guess ! the_number:if guess > the_number:p…

【MySQL】数据库基本知识小结

数据库的基本概念 数据库&#xff1a;DataBase 简称 DB&#xff0c;就是信息的集合或者说数据库是由数据库管理系统管理的数据的集合。数据库管理系统&#xff1a;DataBase Management System 简称 DBMS&#xff0c;是一种操纵和管理数据库的大型软件&#xff0c;通常用于建立…