ฉันกำลังพยายามทำไฟล์สองไฟล์ที่แตกต่างกันและเปรียบเทียบเนื้อหาและถ้ามันต่างกันก็ส่งอีเมล์ ด้านล่างเป็นสคริปต์ของฉันที่ฉันไม่สามารถทำงานด้วยเหตุผลบางอย่าง ข้อเสนอแนะใด ๆ ยินดีต้อนรับ
#!/bin/bash
# This script alert.sh runs every hour in cron
# Created march 15, 2018 Author Dave Taylor
# Variables
frm="Datafile-Monitor@mycompany.com"
# For testing email and script
recipients="dave@mycompany.com"
# This is the Data file checked every Midnight for website results done by curdata.sh script. Results go to the curfile.fil
current=/scripts/results/curfile.fil
# This is the NEW data output file where website is checked every hour done by newdata.sh script. Results go to the datafile.fil
new=/scripts/results/datafile.fil
dpd=`cat /scripts/results/datafile.fil`
dte=`/bin/date`
# check if the contents of the file has changed since midnight.
if diff $current $new &>/dev/null
then
# Log it
echo "$dte" >> /var/log/datapod
echo "Data file is $dpd" >> /var/log/datafile
else
# Create the message
echo "Current STL Datafile has changed TO:$dpd" > /scripts/results/mesg
# send the email
mail -s "Alert Data File has changed" -r "$frm" $recipients < /scripts/results/mesg
sleep 3
#Now we update the current data file with the most up to date info.
cat /scripts/results/datafile.fil > /scripts/results/curfile.fil
fi
3
มันล้มเหลวได้อย่างไร? คุณทำสิ่งใดเพื่อแก้ไขข้อบกพร่องแล้ว
—
tripleee
คุณต้อง a
—
dsstorefile1
!
เพื่อคัดค้านการตรวจสอบในif
คำสั่งเนื่องจากคุณกำลังตรวจสอบเงื่อนไขความล้มเหลว
ใช้
—
Kamil Maciorowski
set -x
เพื่อbash
พิมพ์ทุกคำสั่งที่ตามมา วิธีนี้คุณจะรู้ว่าสิ่งใดที่ถูกดำเนินการ (หมายเหตุ: คำสั่งเพื่อกลับสู่พฤติกรรมปกติคือset +x
ในกรณีที่คุณต้องการสิ่งนี้)