繁体   English   中英

Unix 脚本外壳

[英]Unix Script Shell

任何人都可以帮助我编写脚本

我正在尝试制作一个脚本外壳,如果这些文件中的任何一个被修改并且脚本必须自动例行,它将向根发出警报/通过电子邮件发送,因此脚本必须始终运行

我尝试做一些事情开始,但我需要一些人来纠正我或给我想法

#!/bin/bash

if [`find . -mtime -0` -eq date];then
    mail -s "modified files" root
    find  /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/sudoers /etc/hosts /etc/sysconfig/network /etc/resolv.conf /etc/bashrc /etc/fstab -type f -mtime -50
else
    mail -s "nothing" root
fi

您可以将if语句放在一个循环中,该循环会在迭代之间休眠一段时间:

#!/bin/bash

while sleep 10; do
    # Your "if" goes here 
    # it will be executed with 10 second sleep between iterations.
    if [...]
       ...
    fi
done

这是脚本(a.sh)

#!/bin/bash

date=1
file=$(find . -mtime -${date})

if [  "${file}X" != "X" ]; then
  echo "$file" |mail -s "modified files" root
fi

将脚本放在cronjob中,例如每10分钟运行一次:

0,10,20,30,40,50 * * * * bash a.sh

玉米作业将继续监视文件更新状态,您无需在 while 循环中使用更多脚本来关心它。

用指向资源的指针来补充特定的答案:

一些开始使用bash资源:

这里有两个有用的实验资源

  • http://shellcheck.net可以帮助您查找 shell 代码中的语法错误- 虽然这是一个很好的资源,但它无法检测您代码中的所有问题。 但是,它会检测您的[ ... ]条件的一个问题。

  • http://explainshell.com是一个很棒的站点,它根据man解释给定的命令行 例如,这里是find . -mtime -0的解释find . -mtime -0 find . -mtime -0 : http://explainshell.com/explain?cmd=find+.+-mtime+-0 - 请注意,底层man页是 Ubuntu 的,因此它们涵盖GNU实用程序,许多但并非所有 Unix 发行版都使用它; GNU 实用程序通常具有有用但非标准的扩展,在某些平台(例如 OSX)上可能不可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM