當前位置:首頁 » 編程軟體 » linux腳本發郵件

linux腳本發郵件

發布時間: 2022-05-23 01:15:30

A. linux中自動發送郵件腳本編寫

請問各位linux高玩,我想顯示並判斷abc這個文件目錄中文件,當這個目錄中的文件個數超過4個以後就發送一個email到指定的地址,如果4個以下則不發送,請問這個腳本應該怎樣寫呢?我一般用的mutt來發送郵件的。。 謝謝

B. linux伺服器上寫個腳本,每隔xx分鍾ping指定ip,如果不通,向指定郵箱發送郵件。

別發郵件了 直接發簡訊多好。。。
我以前練習的時候寫的,挺爛的但是能用

#!/bin/bash
#ping 2分鍾結果存入文件
#var 1.0
#LX 2009年4月6日

#help function
help()
{
cat << HELP

============= ping120s.sh help =============
ping目標地址,存入文件。 配合crontab用

USAGE:
-h 顯示幫助
-to IP ping的IP地址
-sh 檢查歷史是否有丟包
-show 檢查詳細歷史
-gz 壓縮以前的記錄,並刪除txt文件
-of dir 指定輸出文件的位置(要求絕對目錄),也可以指定文件名(不建議)

HELP
}

#簡略輸出結果的函數
shmin()
{
for fName in PING__*.txt
do
var=$(sed -n '/.*packets.*/p' $fName | sed 's/.*received,//g' | sed 's/, time.*//g')
var="$(sed -n '/2009_.*/p' $fName) ==>$var"
echo "$var"
var=""
done
}

toGz()
{
gzName=ALL_$(date +%Y年%m月%d日%k時).tar.gz
gzName=`echo "$gzName" | sed 's/ /0/g'`
tar cvfz "$gzName" *.txt
[ ! -d old ] && mkdir old
[ ! -d tmp ] && mkdir tmp
mv $gzName old/ && mv *.txt tmp/
}
############## main ###############
[ -z $1 ] && { echo "參數錯誤"; help; exit 1; }
#fileName=ping__$1__$(date +%m月%d日%k:%M)
#刪除文件名中的空格, 不刪除的話0點到10點之前都沒法記錄 日亞終於找到毛病了
#fileName=`echo "$fileName" | sed 's/ /0/g'`
#echo $fileName
TIMEOUT=30

while [ -n "$1" ]; do
case "x$1" in
x-h) help; exit 0;;
x-to)
shift
[ -z "$1" ] && { echo "參數錯誤"; help; exit 1; }
pingTo="$1"
shift
;;
x-sh) shmin; exit 0;;
x-show) clear; tail -n 3 PING__*.txt; exit 0;;
x-gz) toGz; exit 0;;
x-of)
shift
[ -z "$1" ] && { echo "參數錯誤"; help; exit 1; }
ofilename="$1"
shift
;;
*) echo "error"; help; exit 1 ;;
esac
done

#-to是必須參數,ping到那裡
[ -z "$pingTo" ] && { echo "-to 參數必選之參數"; help; exit 1; }

#判斷存數文件的中間名
if [ -z "$ofilename" ] || [ -d "$ofilename" ]; then
mfileName=$pingTo
else
mfileName=${ofilename##/*/}
fi
#生成存儲文件的名稱,如沒有sed那句過了夜裡12點0點開頭到9點都無法存儲,應為有個空格 日!
fileName=PING__"$mfileName"__$(date +%m月%d日%k:%M)
fileName=`echo "$fileName" | sed 's/ /0/g'`

#存儲的目錄判斷,默認是$PWD,主要是判斷絕對目錄開頭的/和結束的/
dirName="$PWD/"
if [ "x${ofilename%${ofilename#?}}" = "x/" ]; then
if [ -d "$ofilename" ]; then
dirName="$ofilename"
[ "x${ofilename#${ofilename%?}}" = "x/" ] || dirName="$dirName/"
elif [ -d "${ofilename%/*}" ]; then
dirName="${ofilename%/*}/"
fi
fi

#echo $fileName
#echo $dirName
echo "$(date +%Y_%m_%d__%H:%M)" > "$dirName$fileName.txt"
ping "$pingTo" -n -w "$TIMEOUT" >> "$dirName$fileName.txt"
wait
bash sms.sh "$pingTo" 2>>sms.log
exit 0

下面是發簡訊腳本 sms.sh
lx@lx-Linux:~/bash/lx/ping$ cat sms.sh
#!/bin/bash

data=$(sh ping120s_V1.sh -sh| awk -F"[% ]" '{print $3}'|tac)
data=$(echo $data | awk '{print $1,$2}')
shijian=$(date +%Y年%m月%d日%k時%M分|sed 's/ *//g')
if [ -z $1 ]
then
address=""
else
address="$1"
fi

#echo $data
#echo $shijian
#data="40 $data"
for i in $(echo $data)
do
# echo "-->$i"
if [ $i -ge 40 ]
then
# echo "$i>=40"
sms -f 手機號碼 -p 飛信密碼 -t 發送給那個手機 -m "To:$address $i% loss -- $shijian" >>sms.log
wait
echo "To:$address $i% loss -- $shijian" >>sms.log
# bash ping120s_V1.sh -gz
exit 9
else
# echo "$i<40"
:
fi
done

exit 0

C. linux shell腳本每分鍾執行計劃任務,並把結果發送到mail,怎麼不重復發送

如果是這樣的話 建議你腳本設置一個閥值 用if判斷實現 在統計fail的類型的錯誤的時候 通過uniq和sort之類的排序去重語法 將重復次數和數值計算出來寫入郵箱的臨時文檔里 另外最好不要一分鍾一次 感覺意義不大 如果非要一分鍾一次的話 建議腳本改進 通過當前的date時間做減法 算時間和日誌里的進行比對 然後找出近一分鍾的時間內的fail的IP 寫入tmp文件中 那樣你可以用 >這樣的輸出重定向 以免每次看到都有很多重復信息。 具體的腳本寫法我就不羅列了 自己解決問題才是成長的過程。

D. 有人會使用linux腳本發送郵件嗎

1、編輯用戶Home目錄下的.muttrc文件,設置發信環境。

復制代碼代碼如下:

# cat /root/.muttrc
set envelope_from=yes
set [email protected]
set realname="Owinux"
set use_from=yes
set rfc2047_parameters=yes
set charset="utf-8"

2、發信腳本

復制代碼代碼如下:

# cat automail.sh
#!/bin/sh
# automail.sh
DIR=/root/owinux
mailcontent=$DIR/mailcontent
> "$mailcontent"
echo -e "owinux,您好!\n" >> $mailcontent
echo -e "\t附件為 `date +%Y-%m-%d` 設備日檢報告,敬請查收。" >> $mailcontent
cat mailcontent | /usr/bin/mutt -s "設備日檢報告" -a /root/owinux/report.xls [email protected] -c [email protected] -c [email protected]

3、簡要說明:

-s:指定主題
-a:附件
-c:抄送,需要抄送多人的話,須使用多個 -c 選項

使用上面的發信環境可以保證在頁面查看郵件的時候,附件名不出現亂碼。
其中 .muttrc 的 "set from"可以隨便設置,可以是不存在的郵箱地址,當然正確的最好。
比如:

復制代碼代碼如下:

set [email protected]

不過也並不是你設置的正確的郵箱地址就一定能發送成功。

復制代碼代碼如下:

set [email protected]

我新注冊了一個 [email protected],然後將 set from 設置為[email protected],就沒有成功。
原因在於126郵箱報了 550 MI:SPF 錯誤,連接到126 企業退信的常見問題? 發現

復制代碼代碼如下:

550 MI:SPF 發信IP未被發送域的SPF許可。

E. Linux crontab定時腳本 調用mail命令發送郵件

你把shell的內容和crontab的內容復制出來看一下。

F. 要用shell腳本實現發郵件的需求,要發給多人,前台會把所有的郵件地址傳給我,我怎麼給所有地址發出去

如果你要向外部發郵件,通常需要配置你的sendmail或者使用更加強大的Postfix建立郵件伺服器,然後用郵件客戶端向外發送郵件。
而shell只是一個執行腳本,通過這個腳本可以實現自動發送的目的,但是解決不了你發郵件的需求。
如果有多個人,可以使用循環來寫。如果你對linux不懂的話,最好盡量少使用腳本。喜歡DU啪啦君,就採納一下吧!

G. linux下使用perl腳本通過139郵箱發送郵件之後,手機無法登錄139郵箱

修改密碼就是了,perl腳本也要修改一下,模擬瀏覽器登錄。

H. 如何使用linux shell發送Email郵件

方法很多呀,mail命令就可以實現,這個命令在很多包里都有,例如sendmail

I. linux 發郵件python腳本怎麼檢查是否發送成功

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
#導入smtplib和MIMEText 
import smtplib,sys 
from email.mime.text import MIMEText 
 
def send_mail(sub,content): 
    ############# 
    #要發給誰,這里發給1個人 
    mailto_list=["[email protected]"] 
    ##################### 
    #設置伺服器,用戶名、口令以及郵箱的後綴 
    mail_host="mail.gyyx.cn" 
    mail_user="[email protected]
    mail_pass="123456677890" 
    mail_postfix="gyyx.cn" 
    ###################### 
    ''''' 
    to_list:發給誰 
    sub:主題 
    content:內容 
    send_mail("[email protected]","sub","content") 
    ''' 
    me=mail_user+"<"+mail_user+"@"+mail_postfix+">" 
    msg = MIMEText(content,_charset='gbk') 
    msg['Subject'] = sub 
    msg['From'] = me 
    msg['To'] = ";".join(mailto_list) 
    try: 
        s = smtplib.SMTP() 
        s.connect(mail_host) 
        s.login(mail_user,mail_pass) 
        s.sendmail(me, mailto_list, msg.as_string()) 
        s.close() 
        return True 
    except Exception, e: 
        print

J. 求一個linux腳本:看磁碟使用情況,超過85%的自動報警發入到指定郵箱,並做成計劃任務

#!/bin/sh
ip=192.168.1.1; #你的真實IP地址
time=`date +%F-%H:%M`;
mail_address="你的郵件地址";
tmpfile=/tmp/check-disk.txt
a=`df -h | grep 'sda1'|awk '{print int($5)}'`; #指定過濾的硬碟分區
touch /tmp/check-disk.txt
echo "From :$ip" > $tmpfile #這里用「>」的意思是覆蓋,保證每次發郵件的內容都是新的。
echo "DateTime:$time" >> $tmpfile
echo "Info :yourname" >> $tmpfile
echo "disk_status_use=$a%" >> $tmpfile
if [[ "$a" > 85 ]]; then #指定分區的磁碟使用空間大於85%就報警
/bin/mail -s "warning ! $HOSTNAME disk is full !" $mail_address < $tmpfile
else
/bin/mail -s "$HOSTNAME disk is ok !" $mail_address < $tmpfile
fi

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:705
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:968
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:676
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:828
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:737
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1076
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:308
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:188
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:875
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:829