fix backup IO stats: use /proc/$$/io instead of /proc/self/io
/proc/self/io inside $(awk ...) resolves to the awk subprocess PID, not the parent bash shell. Use $$ (bash PID) to read the correct process IO counters.
This commit is contained in:
parent
0a294a30a6
commit
a95d434ff1
6 changed files with 28 additions and 28 deletions
|
|
@ -341,8 +341,8 @@ resource "kubernetes_cron_job_v1" "mysql-backup" {
|
||||||
command = ["/bin/bash", "-c", <<-EOT
|
command = ["/bin/bash", "-c", <<-EOT
|
||||||
set -euxo pipefail
|
set -euxo pipefail
|
||||||
_t0=$(date +%s)
|
_t0=$(date +%s)
|
||||||
_rb0=$(awk '/^read_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_rb0=$(awk '/^read_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
_wb0=$(awk '/^write_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_wb0=$(awk '/^write_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
|
|
||||||
export now=$(date +"%Y_%m_%d_%H_%M")
|
export now=$(date +"%Y_%m_%d_%H_%M")
|
||||||
mysqldump --all-databases -u root --host mysql.dbaas.svc.cluster.local | gzip -9 > /backup/dump_$now.sql.gz
|
mysqldump --all-databases -u root --host mysql.dbaas.svc.cluster.local | gzip -9 > /backup/dump_$now.sql.gz
|
||||||
|
|
@ -353,8 +353,8 @@ resource "kubernetes_cron_job_v1" "mysql-backup" {
|
||||||
find . -name "dump_*.sql" -type f -mtime +14 -delete # clean up old uncompressed
|
find . -name "dump_*.sql" -type f -mtime +14 -delete # clean up old uncompressed
|
||||||
|
|
||||||
_dur=$(($(date +%s) - _t0))
|
_dur=$(($(date +%s) - _t0))
|
||||||
_rb1=$(awk '/^read_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_rb1=$(awk '/^read_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
_wb1=$(awk '/^write_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_wb1=$(awk '/^write_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
echo "=== Backup IO Stats ==="
|
echo "=== Backup IO Stats ==="
|
||||||
echo "duration: $${_dur}s"
|
echo "duration: $${_dur}s"
|
||||||
echo "read: $(( (_rb1 - _rb0) / 1048576 )) MiB"
|
echo "read: $(( (_rb1 - _rb0) / 1048576 )) MiB"
|
||||||
|
|
@ -1097,8 +1097,8 @@ resource "kubernetes_cron_job_v1" "postgresql-backup" {
|
||||||
command = ["/bin/bash", "-c", <<-EOT
|
command = ["/bin/bash", "-c", <<-EOT
|
||||||
set -euxo pipefail
|
set -euxo pipefail
|
||||||
_t0=$(date +%s)
|
_t0=$(date +%s)
|
||||||
_rb0=$(awk '/^read_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_rb0=$(awk '/^read_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
_wb0=$(awk '/^write_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_wb0=$(awk '/^write_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
|
|
||||||
export now=$(date +"%Y_%m_%d_%H_%M")
|
export now=$(date +"%Y_%m_%d_%H_%M")
|
||||||
PGPASSWORD=$PGPASSWORD pg_dumpall -h postgresql.dbaas -U postgres | gzip -9 > /backup/dump_$now.sql.gz
|
PGPASSWORD=$PGPASSWORD pg_dumpall -h postgresql.dbaas -U postgres | gzip -9 > /backup/dump_$now.sql.gz
|
||||||
|
|
@ -1109,8 +1109,8 @@ resource "kubernetes_cron_job_v1" "postgresql-backup" {
|
||||||
find . -name "dump_*.sql" -type f -mtime +14 -delete # clean up old uncompressed
|
find . -name "dump_*.sql" -type f -mtime +14 -delete # clean up old uncompressed
|
||||||
|
|
||||||
_dur=$(($(date +%s) - _t0))
|
_dur=$(($(date +%s) - _t0))
|
||||||
_rb1=$(awk '/^read_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_rb1=$(awk '/^read_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
_wb1=$(awk '/^write_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_wb1=$(awk '/^write_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
echo "=== Backup IO Stats ==="
|
echo "=== Backup IO Stats ==="
|
||||||
echo "duration: $${_dur}s"
|
echo "duration: $${_dur}s"
|
||||||
echo "read: $(( (_rb1 - _rb0) / 1048576 )) MiB"
|
echo "read: $(( (_rb1 - _rb0) / 1048576 )) MiB"
|
||||||
|
|
|
||||||
|
|
@ -685,8 +685,8 @@ resource "kubernetes_cron_job_v1" "postgresql-backup" {
|
||||||
image = "postgres:16.4-bullseye"
|
image = "postgres:16.4-bullseye"
|
||||||
command = ["/bin/sh", "-c", <<-EOT
|
command = ["/bin/sh", "-c", <<-EOT
|
||||||
_t0=$(date +%s)
|
_t0=$(date +%s)
|
||||||
_rb0=$(awk '/^read_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_rb0=$(awk '/^read_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
_wb0=$(awk '/^write_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_wb0=$(awk '/^write_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
|
|
||||||
export now=$(date +"%Y_%m_%d_%H_%M")
|
export now=$(date +"%Y_%m_%d_%H_%M")
|
||||||
pg_dumpall -h immich-postgresql -U immich > /backup/dump_$now.sql
|
pg_dumpall -h immich-postgresql -U immich > /backup/dump_$now.sql
|
||||||
|
|
@ -696,8 +696,8 @@ resource "kubernetes_cron_job_v1" "postgresql-backup" {
|
||||||
find . -name "dump_*.sql" -type f -mtime +14 -delete # 14 day retention of backups
|
find . -name "dump_*.sql" -type f -mtime +14 -delete # 14 day retention of backups
|
||||||
|
|
||||||
_dur=$(($(date +%s) - _t0))
|
_dur=$(($(date +%s) - _t0))
|
||||||
_rb1=$(awk '/^read_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_rb1=$(awk '/^read_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
_wb1=$(awk '/^write_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_wb1=$(awk '/^write_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
echo "=== Backup IO Stats ==="
|
echo "=== Backup IO Stats ==="
|
||||||
echo "duration: $${_dur}s"
|
echo "duration: $${_dur}s"
|
||||||
echo "read: $(( (_rb1 - _rb0) / 1048576 )) MiB"
|
echo "read: $(( (_rb1 - _rb0) / 1048576 )) MiB"
|
||||||
|
|
|
||||||
|
|
@ -105,8 +105,8 @@ resource "kubernetes_cron_job_v1" "backup-etcd" {
|
||||||
args = [<<-EOT
|
args = [<<-EOT
|
||||||
set -eu
|
set -eu
|
||||||
_t0=$(date +%s)
|
_t0=$(date +%s)
|
||||||
_rb0=$(awk '/^read_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_rb0=$(awk '/^read_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
_wb0=$(awk '/^write_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_wb0=$(awk '/^write_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
|
|
||||||
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
|
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
|
||||||
ETCDCTL_API=3 etcdctl \
|
ETCDCTL_API=3 etcdctl \
|
||||||
|
|
@ -117,8 +117,8 @@ resource "kubernetes_cron_job_v1" "backup-etcd" {
|
||||||
snapshot save /backup/etcd-snapshot-$TIMESTAMP.db
|
snapshot save /backup/etcd-snapshot-$TIMESTAMP.db
|
||||||
|
|
||||||
_dur=$(($(date +%s) - _t0))
|
_dur=$(($(date +%s) - _t0))
|
||||||
_rb1=$(awk '/^read_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_rb1=$(awk '/^read_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
_wb1=$(awk '/^write_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_wb1=$(awk '/^write_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
echo "=== Backup IO Stats ==="
|
echo "=== Backup IO Stats ==="
|
||||||
echo "duration: $${_dur}s"
|
echo "duration: $${_dur}s"
|
||||||
echo "read: $(( (_rb1 - _rb0) / 1048576 )) MiB"
|
echo "read: $(( (_rb1 - _rb0) / 1048576 )) MiB"
|
||||||
|
|
|
||||||
|
|
@ -284,8 +284,8 @@ resource "kubernetes_cron_job_v1" "redis-backup" {
|
||||||
command = ["/bin/sh", "-c", <<-EOT
|
command = ["/bin/sh", "-c", <<-EOT
|
||||||
set -eux
|
set -eux
|
||||||
_t0=$(date +%s)
|
_t0=$(date +%s)
|
||||||
_rb0=$(awk '/^read_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_rb0=$(awk '/^read_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
_wb0=$(awk '/^write_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_wb0=$(awk '/^write_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
|
|
||||||
TIMESTAMP=$(date +%Y%m%d-%H%M)
|
TIMESTAMP=$(date +%Y%m%d-%H%M)
|
||||||
# Trigger a fresh RDB save on the master
|
# Trigger a fresh RDB save on the master
|
||||||
|
|
@ -297,8 +297,8 @@ resource "kubernetes_cron_job_v1" "redis-backup" {
|
||||||
find /backup -name 'redis-*.rdb' -type f -mtime +28 -delete
|
find /backup -name 'redis-*.rdb' -type f -mtime +28 -delete
|
||||||
|
|
||||||
_dur=$(($(date +%s) - _t0))
|
_dur=$(($(date +%s) - _t0))
|
||||||
_rb1=$(awk '/^read_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_rb1=$(awk '/^read_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
_wb1=$(awk '/^write_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_wb1=$(awk '/^write_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
echo "=== Backup IO Stats ==="
|
echo "=== Backup IO Stats ==="
|
||||||
echo "duration: $${_dur}s"
|
echo "duration: $${_dur}s"
|
||||||
echo "read: $(( (_rb1 - _rb0) / 1048576 )) MiB"
|
echo "read: $(( (_rb1 - _rb0) / 1048576 )) MiB"
|
||||||
|
|
|
||||||
|
|
@ -267,8 +267,8 @@ resource "kubernetes_cron_job_v1" "vault_backup" {
|
||||||
args = [join("", [
|
args = [join("", [
|
||||||
"set -eu; ",
|
"set -eu; ",
|
||||||
"_t0=$(date +%s); ",
|
"_t0=$(date +%s); ",
|
||||||
"_rb0=$(awk '/^read_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0); ",
|
"_rb0=$(awk '/^read_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0); ",
|
||||||
"_wb0=$(awk '/^write_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0); ",
|
"_wb0=$(awk '/^write_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0); ",
|
||||||
"export VAULT_ADDR=http://vault-active.vault.svc.cluster.local:8200 && ",
|
"export VAULT_ADDR=http://vault-active.vault.svc.cluster.local:8200 && ",
|
||||||
"export VAULT_TOKEN=$(cat /vault/token/vault-root-token) && ",
|
"export VAULT_TOKEN=$(cat /vault/token/vault-root-token) && ",
|
||||||
"TIMESTAMP=$(date +%Y%m%d-%H%M%S) && ",
|
"TIMESTAMP=$(date +%Y%m%d-%H%M%S) && ",
|
||||||
|
|
@ -276,8 +276,8 @@ resource "kubernetes_cron_job_v1" "vault_backup" {
|
||||||
"find /backup -name '*.db' -mtime +30 -delete && ",
|
"find /backup -name '*.db' -mtime +30 -delete && ",
|
||||||
"echo \"Backup done: vault-raft-$TIMESTAMP.db\" && ls -lh /backup/ && ",
|
"echo \"Backup done: vault-raft-$TIMESTAMP.db\" && ls -lh /backup/ && ",
|
||||||
"_dur=$(( $(date +%s) - _t0 )); ",
|
"_dur=$(( $(date +%s) - _t0 )); ",
|
||||||
"_rb1=$(awk '/^read_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0); ",
|
"_rb1=$(awk '/^read_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0); ",
|
||||||
"_wb1=$(awk '/^write_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0); ",
|
"_wb1=$(awk '/^write_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0); ",
|
||||||
"echo '=== Backup IO Stats ==='; ",
|
"echo '=== Backup IO Stats ==='; ",
|
||||||
"echo \"duration: $${_dur}s\"; ",
|
"echo \"duration: $${_dur}s\"; ",
|
||||||
"echo \"read: $(( (_rb1 - _rb0) / 1048576 )) MiB\"; ",
|
"echo \"read: $(( (_rb1 - _rb0) / 1048576 )) MiB\"; ",
|
||||||
|
|
|
||||||
|
|
@ -248,8 +248,8 @@ resource "kubernetes_cron_job_v1" "vaultwarden-backup" {
|
||||||
set -euxo pipefail
|
set -euxo pipefail
|
||||||
apk add --no-cache sqlite
|
apk add --no-cache sqlite
|
||||||
_t0=$(date +%s)
|
_t0=$(date +%s)
|
||||||
_rb0=$(awk '/^read_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_rb0=$(awk '/^read_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
_wb0=$(awk '/^write_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_wb0=$(awk '/^write_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
|
|
||||||
now=$(date +"%Y_%m_%d_%H_%M")
|
now=$(date +"%Y_%m_%d_%H_%M")
|
||||||
# Pre-flight: verify source DB is healthy before backing up
|
# Pre-flight: verify source DB is healthy before backing up
|
||||||
|
|
@ -275,8 +275,8 @@ resource "kubernetes_cron_job_v1" "vaultwarden-backup" {
|
||||||
find /backup -maxdepth 1 -mindepth 1 -type d -mtime +30 -exec rm -rf {} +
|
find /backup -maxdepth 1 -mindepth 1 -type d -mtime +30 -exec rm -rf {} +
|
||||||
|
|
||||||
_dur=$(($(date +%s) - _t0))
|
_dur=$(($(date +%s) - _t0))
|
||||||
_rb1=$(awk '/^read_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_rb1=$(awk '/^read_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
_wb1=$(awk '/^write_bytes/{print $2}' /proc/self/io 2>/dev/null || echo 0)
|
_wb1=$(awk '/^write_bytes/{print $2}' /proc/$$/io 2>/dev/null || echo 0)
|
||||||
echo "=== Backup IO Stats ==="
|
echo "=== Backup IO Stats ==="
|
||||||
echo "duration: $${_dur}s"
|
echo "duration: $${_dur}s"
|
||||||
echo "read: $(( (_rb1 - _rb0) / 1048576 )) MiB"
|
echo "read: $(( (_rb1 - _rb0) / 1048576 )) MiB"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue