上海闵行区网站建设,如何做好专业类网站,seo网站建设公司,新渝网1、shell工具-tput
这个是tput bash工具
具体的操作如下#xff1a;
tput clear#xff1a;清屏tput cup Y X 第Y行#xff0c;第X列的位置 tput bold#xff1a;字体加粗tput sgr0 #xff1a; 重置命令tput setaf n n#xff1a;代表数字0-7 0黑色1红色2绿色3黄色4蓝…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脚本-LAMPWordpress
安装httpd安装MySQL安装PHP安装wordpress
#编写脚本
[rootNode1 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 -latrm命令删除指定任务编号的at任务 atrm 编号 同 at -dat -c 任务号 查看计划任务的具体内容和at计划任务文件/var/spool/at/以a开头的文件内容相同
两个文件
/etc/at.deny只有该名单里面的人不可以使用/etc/at.allow只用该名单里面的人可以使用这个文件一般不存在如果需要自行创建
案例说明
#启动atd进程
[rootNode1 ~]# systemctl start atd#查看服务状态
[rootNode1 ~]# systemctl status atd#查看是否开机自启
[rootNode1 ~]# systemctl is-active atd
active#确保时间是准确的
[rootNode1 ~]# date
Wed Jul 12 15:23:53 CST 2023#添加一次性计划任务--添加ctrld结束
[rootNode1 ~]# at 15:30
at echo hello the word
at EOT
job 1 at Wed Jul 12 15:30:00 2023#查看一次性任务列表
[rootNode1 ~]# 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#指定一个时间
[rootNode1 ~]# 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分钟执行
[rootNode1 ~]# at now 30min
at echo aaa
at EOT
job 4 at Wed Jul 12 16:04:00 2023#指定三天后的计划任务
[rootNode1 ~]# at 18:00 3days
at echo bbb
at EOT
job 5 at Sat Jul 15 18:00:00 2023#查看计划任务
[rootNode1 ~]# 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#删除计划任务
[rootNode1 ~]# at -d 3
[rootNode1 ~]# 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#查看计划任务的内容
[rootNode1 ~]# at -c 2
#!/bin/sh
# atrun uid0 gid0
.........
echo hello liangjiawei
echo welcome to Linux2.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服务
[rootNode1 ~]# systemctl start crond
[rootNode1 ~]# systemctl enable crond#编辑任务
[rootNode1 ~]# crontab -uroot -e
no crontab for root - using an empty one
1 * 5 * * echo aaa#查看计划任务
[rootNode1 ~]# crontab -l
1 * 5 * * echo aaa#指定liangjiawei用户进行编辑
[rootNode1 ~]# crontab -uliangjiawei -e
no crontab for liangjiawei - using an empty one
1 2 4 3 * echo lll#再次查看
[rootNode1 ~]# 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系统级别的计划任务
系统会清理系统缓存系统会临时清理文件系统会采集系统信息
#查看系统级别的定时任务
[rootNode1 ~]# 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/dmesg2.4、watch命令
作用可以将命令的输出结果输出到标准输出设备多用于周期性执行命令/定时执行命令
语法watch 选项 命令
选项
-n指定间隔时间默认是2秒-c清屏显示结果–color显示颜色
#每隔一秒高亮显示网络链接数的变化情况
[rootNode1 sh]# watch -n 1 -d netstat -ant
Every 1.0s: netstat -ant Wed Jul 12 16:31:04 2023
............3、脚本练习
3.1、查看系统一共多少用户
排查所有用户的计划任务
#编写脚本
[rootNode1 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#执行查看
[rootNode1 sh]# bash user_count.sh 3.2、计划任务脚本
自动输入时间产生计划任务
[rootNode1 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