[英]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
资源:
bash
介绍:http ://www.faqs.org/docs/Linux-HOWTO/Bash-Prog-Intro-HOWTO.html这里有两个有用的实验资源:
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.