GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Gzip Hanya Jika Thesqldump Tidak Error?

Saya ingin Zip dump sql jika dan hanya jika mysqldump tidak menghasilkan kesalahan. Saya mencoba memasukkan kata sandi yang salah, tetapi tetap melakukan gzip.

 mysqldump -u username -ppassword dbname |& if [ $? == 0 ]; then gzip > test.gz; else echo "error"; fi

Apa yang salah dengan perintah saya atau adakah solusi yang lebih baik?

Jawaban yang Diterima:

Saya pikir Anda dapat menghapus |& (alasannya karena Anda tidak perlu menyalurkan stdout atau stderr ke kondisi berikutnya, jika ada, Anda bisa menggunakan ';' sebagai pemisah perintah). Sesuatu seperti ini mungkin akan berhasil:

#!/bin/bash
mysqldump -u myuser -p mypasswd > mydb.dump
if [[ $? -eq 0 ]]; then
    gzip mydb.dump
else 
    echo >&2 "DB backup failed" 
    exit 1
fi

Sunting:untuk memeriksa keberhasilan gzip Anda dapat melakukan sesuatu seperti ini:

mysqldump -u myuser -p mypasswd | gzip > mydb.dump.gz && echo "success" || echo "failure" 

Namun ini akan melaporkan keberhasilan bahkan jika mysqldump gagal, yaitu jika pencadangan gagal karena sebagian besar alasan selain gzip yang mengisi disk.


Linux
  1. Bagaimana Cara Grep Garis Yang Tidak Dimulai Dengan "#" Atau ";"?

  2. ldd tidak menemukan jalur, Bagaimana menambahkan

  3. Systemd :Cara mengeksekusi skrip hanya saat shutdown (bukan saat reboot)

  1. Cara Memperbaiki Kesalahan Rust "linker 'cc' tidak ditemukan" Di Linux

  2. Bagaimana Memperbaiki Kesalahan – qemu:tidak dapat memuat BIOS PC ‘bios.bin’?

  3. File metadata tidak cocok dengan checksum – kesalahan YUM!

  1. kesalahan:src refspec main tidak cocok dengan [GIT] mana pun

  2. Bagaimana Cara Memfilter Log Dmesg Untuk Melihat Hanya Kesalahan?

  3. Linux – Ldd Tidak Menemukan Path, Bagaimana Cara Menambahkannya?