簡體   English   中英

用於刪除mailq消息的C代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM