几个Linux 系统维护任务

Posted on Posted in 安全
Tips: 本文创建于2015年11月6日,已超过 2 年,内容或图片可能已经失效!

1、显示系统信息

  1. #!/bin/bash  
  2. # RHCE 系列第四部分示例脚本  
  3. # 该脚本会返回以下这些系统信息:  
  4. # -主机名称:  
  5. echo -e "\e[31;43m***** HOSTNAME INFORMATION *****\e[0m"  
  6. hostnamectl  
  7. echo ""  
  8. # -文件系统磁盘空间使用:  
  9. echo -e "\e[31;43m***** FILE SYSTEM DISK SPACE USAGE *****\e[0m"  
  10. df -h  
  11. echo ""  
  12. # -系统空闲和使用中的内存:  
  13. echo -e "\e[31;43m ***** FREE AND USED MEMORY *****\e[0m"  
  14. free  
  15. echo ""  
  16. # -系统启动时间:  
  17. echo -e "\e[31;43m***** SYSTEM UPTIME AND LOAD *****\e[0m"  
  18. uptime  
  19. echo ""  
  20. # -登录的用户:  
  21. echo -e "\e[31;43m***** CURRENTLY LOGGED-IN USERS *****\e[0m"  
  22. who  
  23. echo ""  
  24. # -使用内存最多的 5 个进程  
  25. echo -e "\e[31;43m***** TOP 5 MEMORY-CONSUMING PROCESSES *****\e[0m"  
  26. ps -eo %mem,%cpu,comm --sort=-%mem | head -n 6  
  27. echo ""  
  28. echo -e "\e[1;32mDone.\e[0m"  

![systeminfo.png][1]

2、使任务自动化
1) 更新本地文件数据库, 2) 查找(或者删除)有 777 权限的文件, 以及 3) 文件系统使用超过定义的阀值时发出警告。

  1. #!/bin/bash  
  2. # 自动化任务示例脚本:  
  3. # -更新本地文件数据库:  
  4. echo -e "\e[4;32mUPDATING LOCAL FILE DATABASE\e[0m"  
  5. updatedb  
  6. if [ $? == 0 ]; then  
  7.         echo "The local file database was updated correctly."  
  8. else  
  9.         echo "The local file database was not updated correctly."  
  10. fi  
  11. echo ""  
  12. # -查找 和/或 删除有 777 权限的文件。  
  13. echo -e "\e[4;32mLOOKING FOR FILES WITH 777 PERMISSIONS\e[0m"  
  14. # Enable either option (comment out the other line), but not both.  
  15. # Option 1: Delete files without prompting for confirmation. Assumes GNU version of find.  
  16. #find -type f -perm 0777 -delete  
  17. # Option 2: Ask for confirmation before deleting files. More portable across systems.  
  18. find -type f -perm 0777 -exec rm -i {} +;  
  19. echo ""  
  20. # -文件系统使用率超过定义的阀值时发出警告   
  21. echo -e "\e[4;32mCHECKING FILE SYSTEM USAGE\e[0m"  
  22. THRESHOLD=30  
  23. while read line; do  
  24.         # This variable stores the file system path as a string  
  25.         FILESYSTEM=$(echo $line | awk '{print $1}')  
  26.         # This variable stores the use percentage (XX%)  
  27.         PERCENTAGE=$(echo $line | awk '{print $5}')  
  28.         # Use percentage without the % sign.  
  29.         USAGE=${PERCENTAGE%?}  
  30.         if [ $USAGE -gt $THRESHOLD ]; then  
  31.                 echo "The remaining available space in $FILESYSTEM is critically low. Used: $PERCENTAGE"  
  32.         fi  
  33. done < <(df -h --total | grep -vi filesystem)  

请注意该脚本最后一行两个 < 符号之间有个空格。 ![autotasks.png][2] 3、磁盘信息

  1. #!/bin/bash  
  2. # 演示使用 shell 脚本创建 HTML 报告的示例脚本  
  3. # Web directory  
  4. WEB_DIR=.  
  5. # A little CSS and table layout to make the report look a little nicer  
  6. echo "<HTML> 
  7. <HEAD> 
  8. <style> 
  9. .titulo{font-size: 1em; color: white; background:#0863CE; padding: 0.1em 0.2em;} 
  10. table 
  11. { 
  12. border-collapse:collapse; 
  13. } 
  14. table, td, th 
  15. { 
  16. border:1px solid black; 
  17. } 
  18. </style> 
  19. <meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /> 
  20. </HEAD> 
  21. <BODY>" > $WEB_DIR/report.html  
  22. # View hostname and insert it at the top of the html body  
  23. HOST=$(hostname)  
  24. echo "Filesystem usage for host <strong>$HOST</strong><br> 
  25. Last updated: <strong>$(date)</strong><br><br> 
  26. <table border='1'> 
  27. <tr><th class='titulo'>Filesystem</td> 
  28. <th class='titulo'>Size</td> 
  29. <th class='titulo'>Use %</td> 
  30. </tr>" >> $WEB_DIR/report.html  
  31. # Read the output of df -h line by line  
  32. while read line; do  
  33. echo "<tr><td align='center'>" >> $WEB_DIR/report.html  
  34. echo $line | awk '{print $1}' >> $WEB_DIR/report.html  
  35. echo "</td><td align='center'>" >> $WEB_DIR/report.html  
  36. echo $line | awk '{print $2}' >> $WEB_DIR/report.html  
  37. echo "</td><td align='center'>" >> $WEB_DIR/report.html  
  38. echo $line | awk '{print $5}' >> $WEB_DIR/report.html  
  39. echo "</td></tr>" >> $WEB_DIR/report.html  
  40. done < <(df -h | grep -vi filesystem)  
  41. echo "</table></BODY></HTML>" >> $WEB_DIR/report.html  

![systemdisk.png][3]

[1]: http://liuhonghe.me/wp-content/uploads/2015/11/2928837792.png
[2]: http://liuhonghe.me/wp-content/uploads/2015/11/410958879.png
[3]: http://liuhonghe.me/wp-content/uploads/2015/11/407638682.png

» 转载请注明来源:若我若鱼 » 几个Linux 系统维护任务

Leave a Reply

Your email address will not be published. Required fields are marked *

15 − eight =