Files
server/usr/lib/plesk-9.0/ph_dumper
2026-01-07 20:52:11 +01:00

39 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
### Copyright 1999-2025. WebPros International GmbH. All rights reserved.
sqlite=/usr/bin/sqlite3
handler_db=/var/lib/plesk/mail/handlers/handlers.db
dump_db=/var/lib/plesk/mail/handlers/protected_handlers.sql
_safe_die()
{
cp -f ${handler_db} ${handler_db}.bkp
echo "Error: unable to dump handlers with protection flag."
echo "Handlers DB will be re-inited and custom handlers will be lost."
echo "Original DB is saved as ${handler_db}.bkp"
exit 1
}
rm -f ${dump_db}
[ -r "${handler_db}" ] || exit 1
columns=`${sqlite} ${handler_db} 'PRAGMA table_info(handlers)' 2>/dev/null | awk -F '|' '{print "'\''" $2 "'\''"}' | xargs -d '\n' | tr ' ' ','`
[ -n "${columns}" ] || _safe_die
echo "${columns}" | grep -E "\<protected\>" >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo "Warning: there is no protected handlers flag column in handlers DB"
exit 1
fi
handlers_content=`printf '.mode insert handlers\nSELECT * FROM handlers WHERE protected = 1;' | ${sqlite} "${handler_db}" 2>/dev/null`
if [ -z "${handlers_content}" ]; then
echo "Info: there are no protected handlers"
exit 1
fi
echo "${handlers_content}" | sed -e "s|\(VALUES\)|\(${columns}\)\1|g" > "${dump_db}" 2>/dev/null
[ $? -eq 0 ] && test -s "${dump_db}" || _safe_die