我的系统有超过20个网络设备备份运行配置到备份服务器。在服务器端,我必须检查备份作业是否仍在工作。所以我有这个脚本:
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
device="$1"
backupdir="/backup/$device"
latestbackup="`find $backupdir -mmin -1440 -name "$device*"`"
if [[ -f $latestbackup ]];
then
echo "`date` - $device - latest backup is $latestbackup"
else
echo "`date` - $device - backup not working"
fi
所以我可以使用以下语句运行此脚本:
./backup.sh router1
是否有更多参数使这个脚本可用? (超过20岁)喜欢:
./backup.sh router1 router2 router3 ...
答案 0 :(得分:2)
您可以循环运行脚本,每次使用另一个参数:
for x in router1 router2 router3 ...; do ./backup.sh $x; done;
答案 1 :(得分:0)
您可以在此处使用$@
特殊参数 - 它表示整个参数字符串(第一个参数和更晚的参数)以及for循环。
代码如下所示:
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
for device in "$@"; do
backupdir="/backup/$device"
latestbackup="`find $backupdir -mmin -1440 -name "$device*"`"
if [[ -f $latestbackup ]];
then
echo "`date` - $device - latest backup is $latestbackup"
else
echo "`date` - $device - backup not working"
fi
done