This file cleans up the spool directory from DMA Mailservice after defined period of time Otherwise the spool dir may be flooded
Signed-off-by: Alexander Marx alexander.marx@ipfire.org --- dma/dma-cleanup-spool | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ dma/dma.nm | 4 ++++ 2 files changed, 52 insertions(+) create mode 100644 dma/dma-cleanup-spool
diff --git a/dma/dma-cleanup-spool b/dma/dma-cleanup-spool new file mode 100644 index 0000000..92af30c --- /dev/null +++ b/dma/dma-cleanup-spool @@ -0,0 +1,48 @@ +#!/bin/bash +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2015 Michael Tremer michael.tremer@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +SPOOL_DIR="/var/spool/dma" + +find_messages() { + find "${SPOOL_DIR}" -type f -name "M*" -mtime +30 +} + +remove_message() { + local f_message="${1}" + local f_queue="${f_message/${SPOOL_DIR}/M/${SPOOL_DIR}/Q}" + + # If a message file and a queue file exist, delete both + [ -f "${f_message}" ] || return 1 + [ -f "${f_queue}" ] || return 1 + + rm -f "${f_message}" "${f_queue}" + return 0 +} + +main() { + for message in $(find_messages); do + remove_message "${message}" + done + + return 0 +} + +main || exit $? diff --git a/dma/dma.nm b/dma/dma.nm index 79fe021..259421a 100644 --- a/dma/dma.nm +++ b/dma/dma.nm @@ -35,6 +35,10 @@ build
make_install_targets += PREFIX=%{prefix} \ sendmail-link mailq-link install-spool-dirs install-etc + + install_cmds + install -m 755 %{DIR_SOURCE}/dma-cleanup-spool %{BUILDROOT}%{sbindir} + end end
packages
Thank you. Very well done. Merged.
-Michael
On Wed, 2015-11-11 at 13:24 +0100, Alexander Marx wrote:
This file cleans up the spool directory from DMA Mailservice after defined period of time Otherwise the spool dir may be flooded
Signed-off-by: Alexander Marx alexander.marx@ipfire.org
dma/dma-cleanup-spool | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ dma/dma.nm | 4 ++++ 2 files changed, 52 insertions(+) create mode 100644 dma/dma-cleanup-spool
diff --git a/dma/dma-cleanup-spool b/dma/dma-cleanup-spool new file mode 100644 index 0000000..92af30c --- /dev/null +++ b/dma/dma-cleanup-spool @@ -0,0 +1,48 @@ +#!/bin/bash +#################################################################### ########### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2015 Michael Tremer michael.tremer@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see < http://www.gnu.org/licenses/%3E.%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0# +# # +#################################################################### ###########
+SPOOL_DIR="/var/spool/dma"
+find_messages() {
- find "${SPOOL_DIR}" -type f -name "M*" -mtime +30
+}
+remove_message() {
- local f_message="${1}"
- local f_queue="${f_message/${SPOOL_DIR}/M/${SPOOL_DIR}/Q}"
- # If a message file and a queue file exist, delete both
- [ -f "${f_message}" ] || return 1
- [ -f "${f_queue}" ] || return 1
- rm -f "${f_message}" "${f_queue}"
- return 0
+}
+main() {
- for message in $(find_messages); do
remove_message "${message}"
- done
- return 0
+}
+main || exit $? diff --git a/dma/dma.nm b/dma/dma.nm index 79fe021..259421a 100644 --- a/dma/dma.nm +++ b/dma/dma.nm @@ -35,6 +35,10 @@ build
make_install_targets += PREFIX=%{prefix} \ sendmail-link mailq-link install-spool-dirs install -etc
- install_cmds
install -m 755 %{DIR_SOURCE}/dma-cleanup-spool
%{BUILDROOT}%{sbindir}
- end
end
packages