Re: Exec'ing a script from Cyrus when imapd has a client

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Xavier Bestel wrote:
> Hi,
> 
> I have a small install with cyrus-imapd 2.3.14, which reads some of its
> mails with fetchmail. To limit the delay in mail delivery, fetchmail
> awakes each minute to get mails.
> What I would like is let fetchmail do that only when there's a client
> actually reading its mails, i.e. an MUA actually connected to imapd.
> 
> So, my question: how to hook a script each time a client
> connects/disconnects from imapd ?
>

Check /var/imap/proc for files. If any are present, then a client is connected. Write a
polling script to run out of cron that checks for this and runs fetchmail if appropriate.
I'll let other's comment on the soundness of this.

Semi-pseudo code.

#/bin/sh
if [ $(find /var/imap/proc -type f | wc -l) -gt 0 ]; then
  fetchmail
fi

For bonus points, you could parse the proc files and only run fetch mail for the users
actually connected.

find /var/imap/proc -type f | \
  xargs awk 'BEGIN{FS="\t"}{if (length($2)) print $2}' | \
  sort -u | \
  xargs <dispatch_command>

-- 
Russell A. Jackson <raj@xxxxxxxx>
Network Analyst
California State University, Bakersfield


Attachment: signature.asc
Description: OpenPGP digital signature

----
Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux