web-dev-qa-db-ja.com

個人的な〜/ .fetchmailrcで/etc/init.d/fetchmailを使用します

現在、システムに2人のユーザーがfetchmailと個人の~/.fetchmailrcを使用し、コマンドfetchmail -kv --uidl -m '\''/usr/bin/procmail -d %T'\でメールを同期しています(cronでは、これは重要ではありません)。

次に、/etc/init.d/fetchmailサービスを使用したいと思いますが、常にこの2人のユーザーの個人的なfetchmailrcを使用します。 /etc/fetchmailrcグローバル設定を使用したくありません。これは可能ですか?

私はグローバルcronを作成する可能性を知っていますが、私が言ったことが可能かどうかを知る前に。

2
fauve

fetchmailで私が知っている、箱から出してすぐに使えるものは実際には何もありませんが、そのように自分で簡単に構築することができます。

start)サービスに/etc/init.d/fetchmailセクションがある場合:

start)
        # Start daemons.
        echo -n "Starting fetchmail: "
        update_boot_stage 'Starting email fetching service'
    conffile=/etc/fetchmail.conf
    [ -f "$conffile" ]  &&  FETCHMAILHOME=$fetchmailddirs daemon --user=$fetchmailuser /usr/bin/fetchmail --daemon 60 --syslog --fetchmailrc "$conffile"
    if [ ! -d "$fetchmailddir" ];  then
        mkdir "$fetchmailddir"
        chown $fetchmailuser:$fetchmailgroup "$fetchmailddir"
        chmod 700 "$fetchmailddir"
    fi
        for conffile in /etc/fetchmail.conf.d/*.conf;  do
        bname=$(basename "$conffile")
        fetchmailddirsub=$fetchmailddir/$bname
        if [ ! -d "$fetchmailddirsub" ];  then
            mkdir "$fetchmailddirsub"
            chown $fetchmailuser:$fetchmailgroup "$fetchmailddirsub"
            chmod 700 "$fetchmailddirsub"
        fi
        [ -f "$conffile" ]  &&  FETCHMAILHOME=$fetchmailddirsub daemon --user=$fetchmailuser /usr/bin/fetchmail --daemon 60 --syslog --fetchmailrc "$conffile"
        done
        touch /var/lock/subsys/fetchmail
        success "fetchmail started"
        echo
        ;;

次に、ディレクトリ/etc/fetchmail.conf.d/から各ユーザーの.fetchmailrcファイルへのリンクを作成できます。これにより、1つのfetchmailにすべてのユーザーの可能性を含めることができます。

 $ ln -s /home/userX/.fetchmailrc /etc/fetchmail.conf.d/userX.conf

これは大まかなアイデアであり、多少の調整が必要になる可能性があります。 .fetchmailrcファイルがこの方法で実行できることを確認する必要がありますが、実行可能である必要があります。

停止/開始スクリプトの完全な例は、こちらから入手できます。

2
slm