热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

马哥教育N36第五周作业

1.每12小时备份并压缩etc目录至backup目录中,保存文件名称格式为,“etc-年-月-日-时-分.tar.gz”首先确保crond服务处于运行

1.每12小时备份并压缩/etc/目录至/backup目录中,保存文件名称格式为,“etc-年-月-日-时-分.tar.gz”

首先确保crond服务处于运行状态,通过crontab命令添加循环任务

echo "/bin/tar -zcf /data/backup/etc-\$(date '+%Y-%m-%d-%H-%M').tar.gz /etc/* &>/dev/null" > /root/bin/backup.sh
crontab -e
0 */12 * * * /root/bin/backup.sh

2.rpm包管理功能总结以及实例应用演示。

rpm是一个功能十分强大的软件包管理系统,它使得在Linux下安装、升级和删除软件包的工作变得容易,并且具有查询、验证软件包的功能。


安装软件包命令说明
rpm -ivh xxx.rpm安装指定的rpm软件包,还可以在线安装
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7导入签名

查询软件包命令说明
rpm -qa | grep ‘http’查询包含http的包
rpm -qa “gpg-pubkey*”查询系统内的所有公钥包
rpm -qf /bin/ls查询ls文件是由哪个包提供
rpm -qi httpd查询httpd包的信息,这里包的名称必须完全正确,多一个少一个字符都不行
rpm -ql httpd查询包安装后产生哪些文件
rpm -qpi xxx.rpm查询未安装rpm包的信息,比如下载了一个包,看看它的描述信息

删除软件包命令说明
rpm -e gpg-pubkey-f4a80eb5-53a7ff4b删除指定的公钥软件包,包的名称要正确

3.yum的配置和使用总结以及yum私有仓库的创建。

yum是rpm的前端工具,可以解决软件包的依赖问题。yum的配置文件分两个部分:一个是 /etc/yum.conf 配置文件为所有仓库提供公共配置,一个是 /etc/yum.repos.d/*.repo 仓库配置文件。yum的日志文件保存在 /etc/log/yum.log 文件中。


常用命令说明
yum repolist显示仓库列表
yum list all http*显示所有安装和可用的以http开头的包信息,表达式支持通配符
yum install pkgname安装软件包
yum reinstall pkgname重新安装,可以解决软件的文件破坏或缺失问题
yum remove pkgname卸载软件包,可能卸载不干净,有些依赖包不会被卸载
yum whatprovides */lsof这个命令可以查找命令对应的软件包名称,很有用
yum history查看yum的事务历史
yum history undo ID适用于不能卸载依赖的包,使用yum事务来取消。至于安装的软件包是哪个事务ID,使用下面的info命令查看。
yum history info ID查看指定ID历史事务的信息
yum grouplist查看可安装的和已经安装的包组信息
yum groupinstall groupname安装包组

常用选项说明
-y自动回答yes
-q静默安装
–disablerepo=repoid临时禁用指定的仓库
–enablerepo=repoid临时启用指定的仓库
–noplugins禁用所有插件

自定义仓库
在 /etc/yum.repos.d/ 目录中新建自定义仓库的配置文件,它最基本的几个要素包括:

[base] repoid仓库的标识
name=Centos tsinghua 仓库名称
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/ baseurl仓库的软件所在位置
gpgcheck=1 是否启用gpg校验
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 gpg公钥
enabled=1 是否启用仓库

4.写一个脚本实现列出以下菜单给用户:

(1)disk:show disk info信息
(2)mem: show memory info信息
(3)cpu: show cpu info信息
(*)quit

#!/bin/bash
echo "(1) disk: show disk info"
echo "(2) mem: show memory info"
echo "(3) cpu: show cpu info"
echo "(*) quit"
read -p "What's your choice:" choice
[[ $choice == 1 ]] && { echo "you choose $choice"; exit; }
[[ $choice == 2 ]] && { echo "you choose $choice"; exit; }
[[ $choice == 3 ]] && { echo "you choose $choice"; exit; }
[[ $choice == '*' ]] && { echo "you choose $choice"; exit; }
echo "you choose nothing."

5.sed用法总结并结合实例演示

sed 是一款过滤和转换文本的强大的流编辑器。sed是 stream editor 的缩写。它主要用来自动编辑一个或多个文件,简化对文件的反复操作。
语法格式如下
sed [option…] ‘script’ input-file…
其中script是由两部分构成:地址和命令。如果没有添加 -e,–expression,-f, 或 --file 选项, 那么第一个非选项参数将被当作是要执行的脚本。


常用选项说明
-n不自动打印所有行
-e后面跟script,只有一个脚本可以不写这个选项,要是多个脚本不能省略
-f后接文件路径,从文件中读取sed要执行的script
-r开启扩展正则表达式的支持
-i.bak备份文件后编辑文件

示例说明
sed ‘3p’ /etc/passwd打印 /etc/passwd 文件的第三行,原文件所有行也将打印
sed -n ‘3p’ /etc/passwd只打印 /etc/passwd 文件的第三行
sed -n ‘1,4p’ /etc/passwd只打印 /etc/passwd 文件的第一行到第四行
sed -n ‘/root/p’ /etc/passwd只打印 /etc/passwd 文件中包行root字符的所有行
sed -n -e ‘/root/=’ -e ‘/root/p’ /etc/passwd第一行打印行号,第二行打印行内容,循环打印所有匹配到的行
sed ‘/root/a\superman\nover’ /etc/passwd在匹配行的下一行添加superman,并换行添加over。支持添加多行内容。
sed ‘/root/i\superman\nover’ /etc/passwd在匹配行的上一行添加superman,并换行添加over。支持添加多行内容。
sed ‘/root/c\superman\nover’ /etc/passwd在匹配行的行替换为superman和over新行。支持替换为多行内容。
sed ‘/^$/d’ file删除file中的空行并打印
sed –n ‘s/root/&superman/p’ /etc/passwd将root替换为rootsuperman字符串,其中&代表是每一个匹配的结果,如一行中有多个字符串匹配则只选取第一个匹配结果
sed –n ‘s/root/&superman/gp’ /etc/passwd将所有的root替换为rootsuperman,g表示行内全局替换
sed -i.bak ‘1d’ /etc/passwd以passwd.bak文件名备份后删除passwd文件的第一行,不会打印到屏幕上
echo /etc/fstab | sed -nr ‘s@(/.*/)([^/]+/?)@\1@p’替换还支持后向引用

6. 用bash实现统计访问日志文件中状态码大于等于400的IP数量并排序

# 方法一:
sed -nr 's/^(.*) - -.*" ([0-9]{3}) .*/\2 \1/p' /var/log/httpd/access_log | grep -v '^[0-3]' | cut -d' ' -f2 | sort -nr | uniq -c
# 方法二
awk '$9>400{print $1}' /var/log/httpd/access_log |uniq -c |sort -nr

7. 使用自制的yum源安装ftp、openssh、curl、wget、tcpdump等软件包

#!/bin/bashosver=$(grep -o [0-9] /etc/centos-release | head -n1)
cd /etc/yum.repos.d
if ls *.repo &> /dev/null ;thenif ! ls bak &> /dev/null;thenmkdir bakfi/bin/mv *.repo bak &> /dev/null
fi
cat << eof > base.repo
[base]
name&#61;Centos tsinghua
baseurl&#61;https://mirrors.tuna.tsinghua.edu.cn/centos/\$releasever/os/\$basearch/
gpgcheck&#61;1
gpgkey&#61;file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$osver
eof
yum -y -q install ftp openssh curl wget tcpdump &>/dev/null
unset osver

推荐阅读
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • 在CICS应用环境中,众多客户端通过网络与CICS服务器进行连接。系统管理员可以通过CICS系统交易CEMT查询当前连接的客户端信息。然而,在非客户端模式下,识别用户连接并解决信息获取错误的问题变得更为复杂。本文将探讨如何在CICS服务器端准确识别非客户端模式的用户连接,并提供有效的解决方案,以确保系统的稳定性和数据的准确性。此外,还将介绍一些常用的诊断工具和技术,帮助管理员快速定位和解决问题。 ... [详细]
  • 初探性能优化:入门指南与实践技巧
    在编程领域,常有“尚未精通编码便急于优化”的声音。为了从性能优化的角度提升代码质量,本文将带领读者初步探索性能优化的基本概念与实践技巧。即使程序看似运行良好,数据处理效率仍有待提高,通过系统学习性能优化,能够帮助开发者编写更加高效、稳定的代码。文章不仅介绍了性能优化的基础知识,还提供了实用的调优方法和工具,帮助读者在实际项目中应用这些技术。 ... [详细]
author-avatar
爱文小宝的贇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有