Vladas,
While you haven't told us which OS or distribution you're running Cyrus on, this looks like Debian or Ubuntu, or another distro which follows the same practice of installing the Cyrus binaries outside of the normal path, and then uses a wrapper script, /usr/sbin/cyrus, to run those.

In your previous message you included this snippet from your cyrus.conf file:

   deleteprune     cmd="/usr/sbin/cyrus expire -E 4 -D 28" at=0430

Here's what that file looks like on my Ubuntu server:

   $*file /usr/sbin/cyrus*
   /usr/sbin/cyrus: POSIX shell script, ASCII text executable

And this is what running it without an argument will show:

   $*/usr/sbin/cyrus*
   ERROR: Command cannot be empty

   usage: cyrus COMMAND [ARGS]

   The most commonly used cyr commands are:
       reconstruct   reconstruct mailboxes
       quota         report and optionally fix quota usage
       squatter      reindex mailboxes
       mbpath        translate mailbox names to filesystem paths
       mboxlist      perform operations on the mailbox list database
       check         perform a consistency check of the cyrus mailstore
       tls_prune     prune expired sessions from the TLS sessions database
       ctl_cyrusdb   perform operations common to all Cyrus databases
       expire        expire messages and duplicate delivery database entries
       arbitron      arbitron mailboxes
       cvt_cyrusdb   convert a database file between cyrus database formats
       arbitronsort  sorts arbitron(8) output
       ipurge        delete mail from IMAP mailbox or partition based on age or 
size
       makedirs      Sets up the Cyrus IMAPd system directories (spools)

   You can get manpages for respective command by prepending cyrus-
   prefix to the command name, f.e.:

       man 8 cyrus-reconstruct

So on your system you would use "/usr/sbin/cyrus expire" wherever you see an example using "cyr_expire".  In fact the /usr/sbin/cyrus script is just going to run cyr_expire from the install directory. On my Ubuntu system that is /usr/lib/cyrus/bin, like so:

   $ ls /usr/lib/cyrus/bin/
   arbitron             ctl_mboxlist          cyrdump          httpd         
makedirs   ptdump       sivtest
   arbitronsort         ctl_zoneinfo          cyr_expire       httptest      
master     ptexpire     smmapd
   backupd              cvt_cyrusdb           cyr_info         idled         
mbexamine  ptloader     smtptest
   calalarmd            cvt_xlist_specialuse  cyr_sequence     imapd         
mbpath     quota        squatter
   chk_cyrus            cyr_backup            cyr_userseen     imtest        
mbtool     reconstruct  synctest
   ctl_backups          cyr_buildinfo         cyr_virusscan    installsieve  
nntptest   restore      timsieved
   ctl_conversationsdb  cyr_dbtool            dav_reconstruct  ipurge        
notifyd    sievec       tls_prune
   ctl_cyrusdb          cyr_deny              deliver          lmtpd         
pop3d      sieved       unexpunge
   ctl_deliver          cyr_df                fud              lmtptest      
pop3test   sieveshell   upgrade-db

For Debian/Ubuntu systems this is all explained in /usr/share/doc/cyrus-common/README.Debian.gz, which includes this paragraph:

   The Debian packaging of Cyrus has a few quirks which are important to know
   about:

   1. Relocation of many Cyrus IMAP files

       The default Cyrus install scatters files all over the place.  The
       Debian package installs only a few files in /usr/bin (cyradm).  All
       other programs are installed into /usr/lib/cyrus/bin with
       convenience tool called /usr/sbin/cyrus which can be used to call
       all cyrus utilities.  Invoke /usr/sbin/cyrus --help without any
       argument to learn more.

If you're going to administer a complex system like Cyrus IMAP, and you choose to use someone else's packaging, then you need to take some time to learn the quirks of that packaging.

If you are not using Debian/Ubuntu, then the packages you installed might be very different from mine, so take the above as only one example of how this could be done.

The purpose of /usr/sbin/cyrus is twofold.  1) It gives one a single command, with several sub-commands, to get things done with; and 2) it ensures that the proper effective UID is used when running those commands, so as not to corrupt the mailstore or databases.  This is very important, and easy to get wrong otherwise.

Armed with this information, you should be able to figure out how to expire the expunged messages.  Please check out https://www.cyrusimap.org/ if you have further questions about Expunge.

Cheers,
    -nic

On 11/8/22 13:26, vladas via Info wrote:
I am newbie here, although I have installed Cyrus 3.4.3 (and then upgraded it to 3.4.4) successfully, just thousands of old letters have already piled up the trash bin yet.

Switching |expunge_mode| from |delayed| to |immediate| in /imapd.conf/ did not start cleaning, and |whereis cyr_expire| finds //usr/local/cyrus/man/man8/cyr_expire.8.gz/ only — is it not installed yet? EVENTS{} are left unchanged in /cyrus.conf/:

EVENTS {
   # this is required
   checkpoint    cmd="ctl_cyrusdb -c" period=30

   # this is only necessary if using duplicate delivery suppression,
   # Sieve or NNTP
   delprune      cmd="cyr_expire -E 3" at=0400
# Expire data older than 28 days.
   deleteprune   cmd="cyr_expire -E 4 -D 28" at=0430
   expungeprune  cmd="cyr_expire -E 4 -X 28" at=0445
# this is only necessary if caching TLS sessions
   tlsprune      cmd="tls_prune" at=0400
}


*Cyrus <https://cyrus.topicbox.com/latest>* / Info / see discussions <https://cyrus.topicbox.com/groups/info> + participants <https://cyrus.topicbox.com/groups/info/members> + delivery options <https://cyrus.topicbox.com/groups/info/subscription> Permalink <https://cyrus.topicbox.com/groups/info/T320efe9c3aa52a54-Mb9534ae1b2e4a9bc5d5c5681>

--
Nic [email protected]
https://www.nicbernstein.com

------------------------------------------
Cyrus: Info
Permalink: 
https://cyrus.topicbox.com/groups/info/T320efe9c3aa52a54-M749a9e3d00e7ff7fcb7bc96b
Delivery options: https://cyrus.topicbox.com/groups/info/subscription

Reply via email to