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:
Here's what that file looks like on my Ubuntu server:deleteprune cmd="/usr/sbin/cyrus expire -E 4 -D 28" at=0430
And this is what running it without an argument will show:$ file /usr/sbin/cyrus /usr/sbin/cyrus: POSIX shell script, ASCII text executable
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:$ /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
For Debian/Ubuntu systems this is all explained in /usr/share/doc/cyrus-common/README.Debian.gz, which includes this paragraph:$ 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
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.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 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.Switchingexpunge_mode
fromdelayed
toimmediate
in imapd.conf did not start cleaning, andwhereis 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 }
-- Nic Bernstein nic@xxxxxxxxxxxxxxxx https://www.nicbernstein.com