gpt4 book ai didi

linux - Mail/Mailx 可以和邮件服务器信息一起使用吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:35:32 24 4
gpt4 key购买 nike

我正在尝试创建一个 bash 脚本来检查安装是否到位,如果没有,则将信息记录到文件并发送通知。我在编写脚本方面是个新手,所以有些来龙去脉对我来说难以捉摸。

因为我们正在执行此脚本来监视一个非常挑剔的软件,所以我希望尽可能多地在线执行而不是创建配置文件或不创建配置文件的东西,因为我知道如果有任何更改作为设置供应商会说这是所有问题的原因。以下是我到目前为止提出的代码。我承认我不完全相信代码中的任何内容都能正常工作,所以如果您看到我犯的任何明显错误,我很乐意了解它们。

#!/bin/bash
LOGFILE="/tmp/logs/mount.log
TIMESTAMP=`date "+%Y-%m-%d %H:%M:%S"`

while sleep 10m;
do
status=$(for mnt in /reachengine /reachdata/mongo /reachbkups /mnt/AsperaShares /mnt/Editing /mnt/VOD-World/Movies_in_ProRes51_Archive /mnt/Production /mnt/ReachEngine /mnt/ITBackup /mnt/reach '/mnt/Ready for Air' '/mnt/Ready for Reach'; do mountpoint -q "$mnt" || echo "$TIMESTAMP $mnt missing"; done)
[ "$status" ] && echo "$status" >> $LOGFILE
[ "$status" ] && echo "$status" | mail -s "Missing mount" ####@###.##
done

最佳答案

#!/bin/bash

logfile="/tmp/logs/mount.log" # add 1 quote
timestamp=$( date "+%Y-%m-%d %H:%M:%S" )
mounts=(
/reachengine
/reachdata/mongo
/reachbkups
/mnt/AsperaShares
/mnt/Editing
/mnt/VOD-World/Movies_in_ProRes51_Archive
/mnt/Production
/mnt/ReachEngine
/mnt/ITBackup
/mnt/reach
'/mnt/Ready for Air'
'/mnt/Ready for Reach'
)

while sleep 10m; do
status=$(
for mnt in ${mounts[@]}; do
mountpoint -q "$mnt" || echo "$timestamp $mnt missing"
done
)
if [ "$status" ]; then
echo "$status" >> $logfile
echo "$status" | mail -s "Missing mount" ####@###.##
fi
done

建议:

  • 更正日志文件上的双引号=
  • 小写变量
  • $( ) 改为反引号
  • 数组扫描挂载,更易维护
  • 更好的缩进

只是快速阅读,不是测试
随心所欲

关于linux - Mail/Mailx 可以和邮件服务器信息一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49679540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com