feat(kubectl-odoo): add list script and update backup to use tar instead of zip
This commit is contained in:
2 files changed
+42
-9
No files matched your search
@@ -10,7 +10,7 @@ help() {
|
||||
echo
|
||||
echo 'Description: Backup Odoo database in Kubernetes cluster.'
|
||||
echo "Syntax: $script <deployment> <database>"
|
||||
echo "Example: $script odoo-odoo erp"
|
||||
echo "Example: $script odoo odoo"
|
||||
echo 'Options:'
|
||||
echo " help Show $script manual."
|
||||
echo
|
||||
@@ -36,20 +36,16 @@ fi
|
||||
|
||||
kubectl_exec="kubectl exec $pod_id -- /bin/bash -c"
|
||||
|
||||
echo "Backup database $database to /var/lib/odoo/$database.zip..."
|
||||
echo "Backup database $database to /var/lib/odoo/$database.tar..."
|
||||
|
||||
echo 'Dump database.'
|
||||
$kubectl_exec "pg_dump '$database' > /var/lib/odoo/dump.sql"
|
||||
$kubectl_exec "ls -lsh /var/lib/odoo/dump.sql"
|
||||
|
||||
# echo "Zip filestore and dump to /var/lib/odoo/$database.zip."
|
||||
# $kubectl_exec "zip -q -r /var/lib/odoo/$database.zip /var/lib/odoo/dump.sql /var/lib/odoo/filestore/$database"
|
||||
|
||||
echo "Tar filestore and dump to /var/lib/odoo/$database.zip."
|
||||
echo "Tar filestore and dump to /var/lib/odoo/$database.tar."
|
||||
$kubectl_exec "tar -cf /var/lib/odoo/$database.tar -C /var/lib/odoo dump.sql filestore/$database"
|
||||
$kubectl_exec "ls -lsh /var/lib/odoo/$database.tar"
|
||||
|
||||
echo 'Cleanup dump.'
|
||||
echo 'Remove dump.'
|
||||
$kubectl_exec "rm -rf /var/lib/odoo/dump.sql"
|
||||
|
||||
echo "The Odoo backup has finished: /var/lib/odoo/$database.zip"
|
||||
echo "The Odoo backup has finished: /var/lib/odoo/$database.tar"
|
||||
Executable
+37
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
script=$(basename "$0")
|
||||
version="1.0.1"
|
||||
|
||||
help() {
|
||||
echo
|
||||
echo "$script v$version"
|
||||
echo
|
||||
echo 'Description: List Odoo database in Kubernetes cluster.'
|
||||
echo "Syntax: $script <deployment>"
|
||||
echo "Example: $script odoo"
|
||||
echo 'Options:'
|
||||
echo " help Show $script manual."
|
||||
echo
|
||||
}
|
||||
|
||||
if [[ "$1" == 'help' ]]; then
|
||||
help
|
||||
exit 0
|
||||
fi
|
||||
|
||||
deployment="$1"
|
||||
|
||||
[[ -z "$deployment" ]] && { echo 'Error: Parameter deployment is empty'; exit 1; }
|
||||
|
||||
pod_id=$(kubectl get pods -l app="$deployment" -o jsonpath='{.items[0].metadata.name}' 2>/dev/null)
|
||||
|
||||
if [[ -z "$pod_id" ]]; then
|
||||
echo "Error: No pod found for deployment '$deployment'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
kubectl_exec="kubectl exec $pod_id -- /bin/bash -c"
|
||||
|
||||
$kubectl_exec "psql postgresql://\$PGUSER:\$PGPASSWORD@\$PGHOST/postgres -tAc \"SELECT datname FROM pg_database WHERE datistemplate = false AND datname NOT IN ('postgres', 'template0', 'template1');\""
|
||||
Reference in new issue
Block a user