[英]C code for deleting mailq messages
目前,我正在使用Shell腳本刪除mailq消息。 我想要總和的幫助來將該Shell腳本轉換為C代碼。 任何示例或幫助表示贊賞。 我只想要一些基本的指導。
這是我正在使用的當前代碼:
#!/usr/bin/ksh
WORKFILE="/tmp/check.mq"
MAILLIST="emailadress"
mailq|grep -B1 -i temporarily |grep -iv deferred |egrep -i 'jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec' |awk -F" " '{print $1}' |awk '{print substr($0,10,14)}' |tee -a $WORKFILE |awk '{print "*" $1}' |tee -a mail.mq
mailq|grep -B1 -i unknown|egrep -i 'jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec' |awk -F" " '{print $1}' |awk '{print substr($0,10,14)}' |tee -a $WORKFILE |awk '{print "*" $1}' |tee -a mail.mq
mailq|grep -B1 -i lookup |grep -iv deferred |egrep -i 'jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec' |awk -F" " '{print $1}' |awk '{print substr($0,10,14)}' |tee -a $WORKFILE |awk '{print "*" $1}' |tee -a mail.mq
cat mail.mq | while read file; do rm -rf /var/spool/mqueue/$file;done
rm -rf mail.mq
基本上,我使用消息ID的后5個數字的子字符串並將其發送到我的mailid,而不是刪除這些ID。
您可以使用“系統”功能來運行包括管道在內的shell命令。 它將使用默認的系統外殼程序,在您的系統上它可能是ksh,也可能不是ksh,但這也許無關緊要。 如果確實如此,您可以始終在命令字符串的開頭明確地說“ ksh -c”。
system("mailq|grep -B1 -i temporarily |grep -iv deferred |egrep -i 'jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec' |awk -F" " '{print $1}' |awk '{print substr($0,10,14)}' |tee -a $WORKFILE |awk '{print "*" $1}' |tee -a mail.mq")
您將需要弄清楚如何在其中編織$ WORKFILE -使用snprintf()首先構造命令字符串應該很簡單。 您可以使用getenv()查找值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.