文章目录
Ⅰ:Shell 脚本常见问题
①平时如何应用 Shell 脚本
-
日常巡检:查看所需系统状况时执行该脚本;参数超过阈值时报警
-
自动化部署:一键部署 LNMP 等架构,省时省力
-
日志分割:日志文件太大会不利于分析排查故障,比如 Nginx 没有类似 Apache 的日志分割处理功能,但可以通过撰写脚本配合周期性计划性任务来实现日志的自动切割
-
耦合服务:例如 Rsync+Inotify,可通过 shell 脚本实现自动监控同步功能
#!/bin/bash INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /opt/xcf1/" #INOTIFY_CMD变量:持续监控 /opt/xcf1 目录中的创建,删除,移动,修改,改变时间的操作 RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /opt/xcf1/ xixi@192.168.126.11::wwwroot" #RSYNC_CMD变量:使 xixi 用户,/etc/server.pass 密钥文件,将 /opt/xcf1 目录下的文件进行压缩,归档,保留硬链接文件 #并同步至 192.168.126.11 的共享模块定义的目录 /var/www/html 下,并删除差异性内容,保持一致性 $INOTIFY_CMD | while read DIRECTORY EVENT FILE #持续监控... do if [ $(pgrep rsync | wc -l) -le 0 ] ; then #如果服务并未启动,则执行同步 $RSYNC_CMD fi done