asterisk/contrib/scripts
George Joseph 1a0acabb8a ast_coredumper: Increase reliability
Instead of searching for the asterisk binary and the modules in the
filesystem, we now get their locations, along with libdir, from
the coredump itself...

For the binary, we can use `gdb -c <coredump> ... "info proc exe"`.
gdb can print this even without having the executable and symbols.

Once we have the binary, we can get the location of the modules with
`gdb ... "print ast_config_AST_MODULE_DIR`

If there was no result then either it's not an asterisk coredump
or there were no symbols loaded.  Either way, it's not usable.

For libdir, we now run "strings" on the note0 section of the
coredump (which has the shared library -> memory address xref) and
search for "libasteriskssl|libasteriskpj", then take the dirname.

Since we're now getting everything from the coredump, it has to be
correct as long as we're not crossing namespace boundaries like
running asterisk in a docker container but trying to run
ast_coredumper from the host using a shared file system (which you
shouldn't be doing).

There is still a case for using --asterisk-bin and/or --libdir: If
you've updated asterisk since the coredump was taken, the binary,
libraries and modules won't match the coredump which will render it
useless.  If you can restore or rebuild the original files that
match the coredump and place them in a temporary directory, you can
use --asterisk-bin, --libdir, and a new --moddir option to point to
them and they'll be correctly captured in a tarball created
with --tarball-coredumps.  If you also use --tarball-config, you can
use a new --etcdir option to point to what normally would be the
/etc/asterisk directory.

Also addressed many "shellcheck" findings.

Resolves: #445
2023-12-06 21:24:28 +00:00
..
sip_to_pjsip core: Cleanup gerrit and JIRA references. (#58) 2023-05-03 09:37:57 -06:00
README.messages-expire Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
agents.php remove extraneous svn:executable properties 2005-11-29 18:24:39 +00:00
ast_coredumper ast_coredumper: Increase reliability 2023-12-06 21:24:28 +00:00
ast_grab_core core: Cleanup gerrit and JIRA references. (#58) 2023-05-03 09:37:57 -06:00
ast_logescalator chan_sip: Remove deprecated module. 2023-01-03 09:00:42 -06:00
ast_loggrabber contrib: Spelling fixes 2021-11-16 06:02:11 -06:00
ast_tls_cert ast_tls_cert: Allow private key size to be set on command line 2020-02-19 09:42:03 -05:00
astcli Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
asterisk.ldap-schema contrib: Spelling fixes 2021-11-16 06:02:11 -06:00
asterisk.ldif contrib: Spelling fixes 2021-11-16 06:02:11 -06:00
asterisk.logrotate logrotate: Fix duplicate log entries. 2023-05-25 10:38:50 -06:00
astgenkey contrib/scripts: Make astgenkey executable 2018-08-14 12:10:01 -05:00
astgenkey.8 Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
astversion Scripts: check file versions of Asterisk and dependencies 2015-09-25 15:07:44 -05:00
autosupport chan_sip: Remove deprecated module. 2023-01-03 09:00:42 -06:00
autosupport.8 Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
clang-scan-build Example script for scan-build (the llvm static analyzer) 2015-04-24 09:47:29 -05:00
dahdi_span_config_hook dahdi_span_config_hook: automatically register new dahdi channels 2014-07-03 14:08:02 +00:00
dbsep.cgi Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
file.convert.sh Prompt conversion script 2011-07-05 20:25:23 +00:00
get_ilbc_source.sh Include iLBC source code for distribution with Asterisk 2012-01-18 21:06:29 +00:00
get_mp3_source.sh svn: Switch to https scheme. 2021-04-25 04:46:48 -05:00
get_swagger_ui.sh This is just a quick script for dumping swagger-ui into static-http, 2013-10-18 21:51:01 +00:00
import-cdr-csv-mysql.pl Add a cdr_csv to MySQL import script to contrib/scripts. 2011-05-06 20:47:37 +00:00
install_prereq install_prereq: Fix dependency install on aarch64. 2023-08-14 17:26:32 +00:00
live_ast live_ast: Add astcachedir to generated asterisk.conf. 2023-11-09 18:53:59 +00:00
loadtest.tcl contrib: Spelling fixes 2021-11-16 06:02:11 -06:00
lookup.agi remove extraneous svn:executable properties 2005-11-29 18:24:39 +00:00
managerproxy.pl Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
messages-expire.pl Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
qview.pl remove extraneous svn:executable properties 2005-11-29 18:24:39 +00:00
refcounter.py refdebug: Create refstats.py script. 2018-10-15 15:35:35 -05:00
reflocks.py refdebug: Create refstats.py script. 2018-10-15 15:35:35 -05:00
refstats.py refdebug: Create refstats.py script. 2018-10-15 15:35:35 -05:00
retrieve_extensions_from_mysql.pl Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
retrieve_extensions_from_sql.pl contrib: Spelling fixes 2021-11-16 06:02:11 -06:00
safe_asterisk safe_asterisk: Change directory permissions to 755 2023-09-13 15:17:22 +00:00
safe_asterisk.8 contrib: Spelling fixes 2021-11-16 06:02:11 -06:00
safe_asterisk_restart use pkill instead of killall to be more portable 2008-10-07 18:00:48 +00:00
sipp-sendfax.xml Add sipp-sendfax.xml and spandspflow2pcap.py to contrib/scripts. 2016-01-06 14:12:40 +01:00
spandspflow2pcap.log Restore the incorrectly deleted spandspflow2pcap.log 2017-07-21 10:24:24 -06:00
spandspflow2pcap.py contrib/scripts: Make spandspflow2pcap.py Python 2.7+/3.3+ compatible 2019-07-22 17:43:48 +02:00
valgrind_compare contrib: Spelling fixes 2021-11-16 06:02:11 -06:00
vmail.cgi Merged revisions 143736 via svnmerge from 2008-09-20 00:52:20 +00:00
voicemailpwcheck.py contrib: Spelling fixes 2021-11-16 06:02:11 -06:00

README.messages-expire

messages-expire.pl

messages-expire finds messages more than X days old and deletes them.
Because the older messages will be the lower numbers in the folder (msg0000
will be older than msg0005), just deleting msg0000 will not work.
expire-messages then runs a routine that goes into every folder in every
mailbox to reorganize.  If the folder contains msg0000, no action is taken.
If the folder does not, the rename routine takes the oldest message and
names it msg0000, the next oldest message and names it msg0001 and so on.

The file deletion is done by the -exec parameter to 'find'.  It would be far
more efficient to take the output from 'find' and just reorganize the
directories from which we deleted a file.  Something for the future...

Keep in mind that messages are deleted at the beginning of the script you
will have mailbox trouble if you check messages before the script
reorganizes your mailbox.

To use it, make sure the paths are right.  Adjust $age (originally set to
31) if necessary.