作者:爱文小宝的贇 | 来源:互联网 | 2023-09-06 05:34
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 -cawk '$9 >400{print $1 }' /var/log/httpd/access_log | uniq -c | sort -nr
7. 使用自制的yum源安装ftp、openssh、curl、wget、tcpdump等软件包 #!/bin/bash osver&#61; $( grep -o [ 0-9] /etc/centos-release | head -n1) cd /etc/yum.repos.dif ls *.repo & > /dev/null ; then if ! ls bak & > /dev/null; then mkdir bakfi /bin/mv *.repo bak & > /dev/nullfi 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