这篇文章将为大家详细讲解有关如何使用shell脚本自动化linux系统维护任务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。系统管理员通常会使用sehll脚本解决工作中重复的工作,shell
这篇文章将为大家详细讲解有关如何使用shell脚本自动化linux系统维护任务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
系统管理员通常会使用sehll脚本解决工作中重复的工作,shell脚本使系统管理员花费少的时间去做重复的工作。
什么是 shell 脚本?
简单的说,shell 脚本就是一个由 shell 一步一步执行的程序,而 shell 是在 Linux 内核和最终用户之间提供接口的另一个程序。
默认情况下,RHEL 7 中用户使用的 shell 是 bash(/bin/bash)。
写一个脚本显示系统信息
首先让我们新建一个目录用于保存我们的 shell 脚本:
# mkdir scripts# cd scripts
新建一个文本文件system_info.sh,在头部插入一些注释以及一些命令:
#!/bin/bash# 该脚本会返回以下这些系统信息:# -主机名称:echo -e "\e[31;43m***** HOSTNAME INFORMATioN *****\e[0m"hostnamectlecho ""# -文件系统磁盘空间使用:echo -e "\e[31;43m***** FILE SYSTEM DISK SPACE USAGE *****\e[0m"df -hecho ""# -系统空闲和使用中的内存:echo -e "\e[31;43m ***** FREE AND USED MEMORY *****\e[0m"freeecho ""# -系统启动时间:echo -e "\e[31;43m***** SYSTEM UPTIME AND LOAD *****\e[0m"uptimeecho ""# -登录的用户:echo -e "\e[31;43m***** CURRENTLY LOGGED-IN USERS *****\e[0m"whoecho ""# -使用内存最多的 5 个进程echo -e "\e[31;43m***** TOP 5 MEMORY-CONSUMING PROCESSES *****\e[0m"ps -eo %mem,%cpu,comm --sort=-%mem | head -n 6echo ""echo -e "\e[1;32mDone.\e[0m"
然后,给脚本可执行权限,并运行脚本:
# chmod +x system_info.sh./system_info.sh
为了更好的可视化效果各部分标题都用颜色显示:
颜色功能是由以下命令提供的:
echo -e "\e[COLOR1;COLOR2m\e[0m"
其中 COLOR1 和 COLOR2 是前景色和背景色,是你想用颜色显示的字符串。
使任务自动化
你想使其自动化的任务可能因情况而不同。因此,我们不可能在一篇文章中覆盖所有可能的场景,但是我们会介绍使用 shell 脚本可以使其自动化的三种典型任务:
1) 更新本地文件数据库
1) 查找(或者删除)有 777 权限的文件
2) 文件系统使用超过定义的阀值时发出警告。
让我们在脚本目录中新建一个名为 auto_tasks.sh 的文件并添加以下内容:
#!/bin/bash# 自动化任务示例脚本:# -更新本地文件数据库:echo -e "\e[4;32mUPDATING LOCAL FILE DATABASE\e[0m"updatedbif [ $? == 0 ]; then echo "The local file database was updated correctly."else echo "The local file database was not updated correctly."fiecho ""# -查找 和/或 删除有 777 权限的文件。echo -e "\e[4;32mLOOKING FOR FILES WITH 777 PERMISSIONS\e[0m"# Enable either option (comment out the other line), but not both.# Option 1: Delete files without prompting for confirmation. Assumes GNU version of find.#find -type f -perm 0777 -delete# Option 2: Ask for confirmation before deleting files. More portable across systems.find -type f -perm 0777 -exec rm -i {} +;echo ""# -文件系统使用率超过定义的阀值时发出警告 echo -e "\e[4;32mCHECKING FILE SYSTEM USAGE\e[0m"THRESHOLD=30while read line; do # This variable stores the file system path as a string FILESYSTEM=$(echo $line | awk '{print $1}') # This variable stores the use percentage (XX%) PERCENTAGE=$(echo $line | awk '{print $5}') # Use percentage without the % sign. USAGE=${PERCENTAGE%?} if [ $USAGE -gt $THRESHOLD ]; then echo "The remaining available space in $FILESYSTEM is critically low. Used: $PERCENTAGE" fidone
" >> $WEB_DIR/report.html# Read the output of df -h line by linewhile read line; doecho "" >> $WEB_DIR/report.htmldone " >> $WEB_DIR/report.html
在我们的 RHEL 7 服务器(192.168.0.18)中,看起来像下面这样:
你可以添加任何你想要的信息到那个报告中。添加下面的 crontab 条目在每天下午的 1:30 运行该脚本:
30 13 * * * /root/scripts/filesystem_usage.sh
关于如何使用Shell脚本自动化Linux系统维护任务就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到
--结束END--
本文标题: 如何使用Shell脚本自动化Linux系统维护任务
本文链接: https://www.lsjlt.com/news/320472.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0