上海外贸网站优化,软件开发培训机构电话,做一个中型网站需要多少钱,wordpress视频网站主题系列文章目录
Linux笔记——进程管理Linux笔记——进程管理与网络监控技术讲解Linux笔记——进程管理
Linux笔记——管道相关命令以及shell编程
Linux笔记——磁盘进行分区与挂载介绍
文章目录
系列文章目录
前言
一 RPM介绍
1.1 RPM简单介绍
1.2 RPM命令语法
1.2.1 …系列文章目录
Linux笔记——进程管理Linux笔记——进程管理与网络监控技术讲解Linux笔记——进程管理
Linux笔记——管道相关命令以及shell编程
Linux笔记——磁盘进行分区与挂载介绍
文章目录
系列文章目录
前言
一 RPM介绍
1.1 RPM简单介绍
1.2 RPM命令语法
1.2.1 rpm安装
1.2.2 RPM升级
1.2.3 卸载
1.2.4 查询是否安装
1.2.5 查询包中文件的安装位置
1.2.6 查询系统文件属于哪一个RPM包
1.2.7 查询安装包的依赖性
1.3 RPM实战MySQL安装
1.3.1 第一步骤MySQL的下载与安装
可能会出现的错误信息
1.3.2 第二步骤启动mysql服务并且重新设置密码
1.3.3 第三步骤使用新密码登录并使用windows终端工具进行远程登录
二 yum介绍
2.1 yum简介 2.2 常见总结
2.3 命令详解
1 yum清空缓存列表
2 yum显示信息
3 yum安装
4 yum删除
5 yum包的升级
6 yum 解决依赖的原理
7 yum 组的管理
2.4 其它
1 安装
2 更新和升级
3 查找和显示
4 删除程序
5 清除缓存
三 一些常用的SHELL
3.1 Dos 攻击防范自动屏蔽攻击 IP
3.2 MySQL 数据库备份单循环
3.3 MySQL 数据库备份多循环
3.4 服务器系统配置初始化脚本
3.5 监控 100 台服务器磁盘利用率脚本
总结 前言
本文主要介绍rpm与yum安装软件包的命令以及相关的案例演示。
一 RPM介绍
1.1 RPM简单介绍 1.2 RPM命令语法
RPM包管理常用命令 在学习常用命令之前我们一定要知道全包名和包名的区别如下
包全名︰操作的包是没有安装的包时使用包全名。包名︰操作已经安装的软件包时使用包名。 RPM有五种操作模式分别为∶安装、卸载、升级、查询和验证。 下面是rpm命令的选项
-a :查询所有已经安装的包以下两个附加命令用于查询安装包的信息;-i: 安装软件包;-l︰显示安装包中的所有文件被安装到哪些目录下﹔-s∶显示列出文件的状态﹔-p︰查询/验证一个软件包;-f :查询/验证文件属于的软件包;-V:提供更多的详细信息输出﹔-U:升级一个rpm包;-e :卸载一个rpm包;-h :软件包安装的时候列出哈希标记(和-v一起使用效果更好);
1.2.1 rpm安装 示例1安装一个xxxx.rpm包并在安装过程中显示正在安装的文件信息及安装进度。 rpm -ivh xxxx.rpm
1.2.2 RPM升级 1.2.3 卸载 1.2.4 查询是否安装 案例举例
查看所有安装的mysql包
rpm -qa | grep mysql 1.2.5 查询包中文件的安装位置 查看mysql-server安装的位置
rpm -ql mysql-community-server-5.7.42-1.el7.x86_64 1.2.6 查询系统文件属于哪一个RPM包 查看ect下面的passwd文件属于哪一个包 rpm -qf /etc/passwd 1.2.7 查询安装包的依赖性 查看mysql-server的依赖性
rpm -qR mysql-community-server 这些依赖包一个没有就安装不了。
一些指令示例如下 1.3 RPM实战MySQL安装
mysql四个包的百度网盘链接
链接https://pan.baidu.com/s/1HegAQi-Hu9aUzAyUk1sRaw?pwdeagh 提取码eagh
1.3.1 第一步骤MySQL的下载与安装 需要下载四个rpm包如下 官方下载地址https://downloads.mysql.com/archives/community/ 将下载的上传到我们的Linux机器上此处可以用远程软件将软件上传到Linux机器上面如下 在安装时software是我自己创建的软件包存放目录。
补充内容
MariaDB数据库管理系统是MySQL的一个分支主要由开源社区在维护采用GPL授权许可 MariaDB的目的是完全兼容MySQL包括API和命令行使之能轻松成为MySQL的代替品。在存储引擎方面使用XtraDB来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius主导开发他早前曾以10亿美元的价格将自己创建的公司MySQL AB卖给了SUN此后随着SUN被甲骨文收购MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
MariaDB基于事务的Maria存储引擎替换了MySQL的MyISAM存储引擎它使用了Percona的 XtraDBInnoDB的变体分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎。 MYISAM和INNODB是Mysql数据库提供的两种存储引擎。两者的优劣可谓是各有千秋。INNODB会支持一些关系数据库的高级功能如事务功能和行级锁MYISAM不支持。MYISAM的性能更优占用的存储空间少。所以选择何种存储引擎视具体应用而定。 一、InnoDB支持事务MyISAM不支持这一点是非常之重要。事务是一种高级的处理方式如在一些列增删改中只要哪个出错还可以回滚还原而MyISAM就不可以了。二、MyISAM适合查询以及插入为主的应用InnoDB适合频繁修改以及涉及到安全性较高的应用三、InnoDB支持外键MyISAM不支持四、MySQL 在 5.1 之前版本默认存储引擎是 MyISAM5.1 之后版本默认存储引擎是 InnoDB五、InnoDB不支持FULLTEXT类型的索引六、InnoDB中不保存表的行数如select count(*) from table时InnoDB需要扫描一遍整个表来计算有多少行但是MyISAM只要简单的读出保存好的行数即可。注意的是当count(*)语句包含where条件时MyISAM也需要扫描整个表七、对于自增长的字段InnoDB中必须包含只有该字段的索引但是在MyISAM表中可以和其他字段一起建立联合索引八、清空整个表时InnoDB是一行一行的删除效率非常慢。MyISAM则会重建表九、InnoDB支持行锁某些情况下还是锁整表如 update table set a1 where user like %lee% 在安装之前我们需要卸载mariadb-libs具体命令如下 rpm -q mariadb-libs 需要卸载mariadb-libs
先安装
yum remove postfix 再卸载rpm -e mariadb-libs 先查询一下mariadb-libs的全包名如下指令 rpm -e mariadb-libs-5.5.56-2.el7.x86_64 接着我们按照顺序进行安装顺序为mysql-community-common-5.7.42-1.el7.x86_64.rpm, mysql-community-libs-5.7.42-1.el7.x86_64.rpm, mysql-community-client-5.7.42-1.el7.x86_64.rpm mysql-community-server-5.7.42-1.el7.x86_64.rpm 具体的命令如下 rpm -ivh 全包名即可。
安装四个MySQL的包【顺序不可乱乱了将会出现依赖错误的情况】
rpm -ivh mysql-community-common-5.7.42-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-5.7.42-1.el7.x86_64.rpmrpm -ivh mysql-community-client-5.7.42-1.el7.x86_64.rpmrpm -ivh mysql-community-server-5.7.42-1.el7.x86_64.rpm 可能会出现的错误信息
如果第四个server没有就安装这个包 yum install libaio 1.3.2 第二步骤启动mysql服务并且重新设置密码
service mysqld start # 启动服务
service mysqld status # 查看服务状态
查看mysql状态
之后进入启动mysql 查看临时密码
grep password /var/log/mysqld.log 使用临时密码登录 mysql -u root -h localhost -p 回车后输入上面的临时密码之后将root的密码修改成固定的密码修改密码
alter user rootlocalhost identified by Admin2023!; 再次进入mysql里面此时的密码是刚才修改的密码。 为了方便后续连接外接工具需要关闭centos的防火墙将防火墙永久关闭。 查看防火墙并且永久关闭防火墙。 可以看到原来的用户只是属于localhost的下面将密码加入到所有人可以使用的情况。 grant all on *.* to root% identified by Admin2023! with grant option;
此处的grant表示授权on是在所有数据库的所有表对象等等上授予权限root 为用户名表示前面是用户名后面是主机%代表任意主机 此处也可以写特定的IP【如192.168.1.10】或者特定的网段【如192.168.1.*】
mysql可以提供user和host决定特定的网段或者IP地址登录 配置完成之后重启服务即可。
1.3.3 第三步骤使用新密码登录并使用windows终端工具进行远程登录
此处可以参考以下链接内容进行远程登录此处不再赘述。
MySQL笔记——MySQL数据库介绍以及在Linux里面安装MySQL数据库对MySQL数据库的简单操作MySQL的外接应用程序使用说明
内容在第四小节
二 yum介绍
2.1 yum简介
yum ( Yellow dog Updater, Modified )是一个在Fedora和RedHat 以及 SUSE中的Shell前端软件包管理器。基于RPM包管理能够从指定的服务器自动下载RPM包并且安装可以自动处理依赖性关系并且一次安装所有依赖的软件包无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令而且命令简洁而又好记。
yum的命令形式一般是如下yum [options] [command] [package ...] 其中的[options]是可选的选项包括-h帮助-y当安装过程提示选择全部为yes-q不显示安装的过程等等。[command]为所要进行的操作[package ...]是操作的对象。
概括了部分常用的命令包括
自动搜索最快镜像插件 yum install yum-fastestmirror 安装yum图形窗口插件 yum install yumex 查看可能批量安装的列表 yum grouplist
yum 会自动识别包的依赖问题在安装包时会将包的依赖也安装好。 常用命令如下 2.2 常见总结
yum的命令形式一般是如下
yum –选项命令包yum.reops.d 配置介绍
yum的一切信息都存储在一个叫yum.reops.d目录下的配置文件中通常位于/etc/yum.reops.d目录下。
在这个目录下面有很多文件都是.repo结尾的repo文件是yum源也就是软件仓库的配置文件通常一个repo文件定义了一个或者多个软件仓库的细节内容
例进入/etc/yum.repo.d目录下可以修改这个文件 CentOS-Base.repo
2.3 命令详解
1 yum清空缓存列表
yum clean packages 清除缓存目录下的软件包清空的是(/var/cache/yum)下的缓存
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum clean, yum clean all ( yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers2 yum显示信息
yum list # yum list显示所有已经安装和可以安装的程序包这些列表里面的包的来源就是/etc/yum.repo.d。 base docker-ce-stable epel/x86_64/metalink epel extras rpmforge updates yum list rpm 显示安装包信息rpm显示installed 这里是包名版本和仓库名yum list httpd这里是可获得包说明还没有安装。yum info rpm 显示安装包rpm的详细信息3 yum安装
yum -y install httpd如果你不加-y他会问你要不要安装。如果你想自己来控制有些包是否安装这里不要加-y如果你想自动安装不进行交互这里加入-y。这个就是yum 的安装了非常简单。安装完之后查询一下yum list httpdInstalled 说明已经安装好了4 yum删除
yum remove httpd 删除程序包httpd 也就是卸载。yum deplist rpm 查看程序rpm依赖情况5 yum包的升级
yum check-update 检查可更新的程序yum update 全部更新升级所有包以及升级软件和系统内核这就是一键升级。他可以更新CentOS的内核到最新版本。yum update package1 更新指定程序包package1 yum upgrade package1 升级指定程序包package16 yum 解决依赖的原理
YUM 解决依赖关系问题自动下载软件包。yum是基于C/S架构。C指的是客户端 S指的是服务器想ftphttp,file、关于yum为什么能解决依赖关系所有的Yum 源里面都有repodata它里面是有XML格式文件里面有说明需要什么包。例如上堂课实验的mysql-server rpm 需要perl-DBI python或者是php等等包。7 yum 组的管理
yum进行安装的时候可以一组一组的进行安装先来看看有那些组yumgrouplist。可用的组有这么多。Available Environment Groups:首先是可用的环境分组。Compute Node 计算节点Infrastructure Server 基础设施服务器File and Print Server 文件和打印服务Cinnamon Desktop Cinnamon桌面Installed Groups:已安装的组开发工具Development ToolsAvailable Groups:可用的组。如果我们想以组的方式来安装加入我想安装安全工具输入yumgroupinstall Security Tools看到这里询问是否要安装当然是N不安装了。如果想直接安装不询问的话这里也在后面加上选项 –y。yum groupremove group1 删除程序组group12.4 其它
1 安装
yum install 全部安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group12 更新和升级
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 升级指定程序包package1
yum groupupdate group1 升级程序组group13 查找和显示
yum info package1 显示安装包信息package1
yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1
yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包4 删除程序
yum remove #124; erase package1 删除程序包package1
yum groupremove group1 删除程序组group1
yum deplist package1 查看程序package1依赖情况5 清除缓存
yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum clean, yum clean all ( yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的header
三 一些常用的SHELL
3.1 Dos 攻击防范自动屏蔽攻击 IP
#!/bin/bash
DATE$(date %d/%b/%Y:%H:%M)
LOG_FILE/usr/local/nginx/logs/demo2.access.log
ABNORMAL_IP$(tail -n5000 $LOG_FILE |grep $DATE |awk {a[$1]}END{for(i in a)if(a[i]10)print
i})
for IP in $ABNORMAL_IP; do
if [ $(iptables -vnL |grep -c $IP) -eq 0 ]; then
iptables -I INPUT -s $IP -j DROP
echo $(date %F_%T) $IP /tmp/drop_ip.log
fi
done
3.2 MySQL 数据库备份单循环
#!/bin/bash
DATE$(date %F_%H-%M-%S)
HOSTlocalhost
USERbackup
PASS123.com
BACKUP_DIR/data/db_backup
DB_LIST$(mysql -h$HOST -u$USER -p$PASS -s -e show databases; 2/dev/null |egrep -v
Database|information_schema|mysql|performance_schema|sys)
for DB in $DB_LIST; do
BACKUP_NAME$BACKUP_DIR/${DB}_${DATE}.sql
if ! mysqldump -h$HOST -u$USER -p$PASS -B $DB $BACKUP_NAME 2/dev/null; then
echo $BACKUP_NAME 备份失败!
fi
done
3.3 MySQL 数据库备份多循环
#!/bin/bash
DATE$(date %F_%H-%M-%S)
HOSTlocalhost
USERbackup
PASS123.com
BACKUP_DIR/data/db_backup
DB_LIST$(mysql -h$HOST -u$USER -p$PASS -s -e show databases; 2/dev/null |egrep -v
Database|information_schema|mysql|performance_schema|sys)
for DB in $DB_LIST; do
BACKUP_DB_DIR$BACKUP_DIR/${DB}_${DATE}
[ ! -d $BACKUP_DB_DIR ] mkdir -p $BACKUP_DB_DIR /dev/null
TABLE_LIST$(mysql -h$HOST -u$USER -p$PASS -s -e use $DB;show tables; 2/dev/null)
for TABLE in $TABLE_LIST; do
BACKUP_NAME$BACKUP_DB_DIR/${TABLE}.sql
if ! mysqldump -h$HOST -u$USER -p$PASS $DB $TABLE $BACKUP_NAME 2/dev/null; then
echo $BACKUP_NAME 备份失败!
fi
done
done
3.4 服务器系统配置初始化脚本
#/bin/bash
设置时区并同步时间
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
if ! crontab -l |grep ntpdate /dev/null ; then
(echo * 1 * * * ntpdate time.windows.com /dev/null 21;crontab -l) |crontab
fi
禁用selinux
sed -i /SELINUX/{s/permissive/disabled/} /etc/selinux/config
关闭防火墙
if egrep 7.[0-9] /etc/redhat-release /dev/null; then
systemctl stop firewalld
systemctl disable firewalld
elif egrep 6.[0-9] /etc/redhat-release /dev/null; then
service iptables stop
chkconfig iptables off
fi
历史命令显示操作时间
if ! grep HISTTIMEFORMAT /etc/bashrc; then
echo export HISTTIMEFORMAT%F %T whoami /etc/bashrc
fi
SSH超时时间
if ! grep TMOUT600 /etc/profile /dev/null; then
echo export TMOUT600 /etc/profile
fi
禁止root远程登录
sed -i s/#PermitRootLogin yes/PermitRootLogin no/ /etc/ssh/sshd_config
禁止定时任务向发送邮件
sed -i s/^MAILTOroot/MAILTO/ /etc/crontab
设置最大打开文件数
if ! grep * soft nofile 65535 /etc/security/limits.conf /dev/null; then
cat /etc/security/limits.conf EOF
* soft nofile 65535
* hard nofile 65535
EOF
fi
系统内核优化
cat /etc/sysctl.conf EOF
net.ipv4.tcp_syncookies 1
net.ipv4.tcp_max_tw_buckets 20480
net.ipv4.tcp_max_syn_backlog 20480
net.core.netdev_max_backlog 262144
net.ipv4.tcp_fin_timeout 20
EOF
减少SWAP使用
echo 0 /proc/sys/vm/swappiness
安装系统性能分析工具及其他
yum install gcc make autoconf vim sysstat net-tools iostat if
3.5 监控 100 台服务器磁盘利用率脚本
#!/bin/bash
HOST_INFOhost.info
for IP in $(awk /^[^#]/{print $1} $HOST_INFO); do
USER$(awk -v ip$IP ip$1{print $2} $HOST_INFO)
PORT$(awk -v ip$IP ip$1{print $3} $HOST_INFO)
TMP_FILE/tmp/disk.tmp
ssh -p $PORT $USER$IP df -h $TMP_FILE
USE_RATE_LIST$(awk BEGIN{OFS}/^\/dev/{print $NF,int($5)} $TMP_FILE)
for USE_RATE in $USE_RATE_LIST; do
PART_NAME${USE_RATE%}
USE_RATE${USE_RATE#}
if [ $USE_RATE -ge 80 ]; then
echo Warning: $PART_NAME Partition usage $USE_RATE%!
fi
done
done
总结
以上就是今天的内容~
欢迎大家点赞收藏⭐转发 如有问题、建议请您在评论区留言哦。
最后转载请注明出处