GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Menghitung Jumlah File Dalam Sebuah Direktori Dan Menghapus Yang Terlama Jika Jumlahnya Melebihi 5?

Saya telah membuat skrip untuk menjalankan pencadangan otomatis di server CentOS 7 saya.
Cadangan disimpan ke direktori /home/backup. Skripnya berfungsi, tetapi sekarang saya ingin memasukkan cara menghitung file setelah pencadangan terjadi dan jika jumlahnya lebih dari 5, hapus cadangan terlama.

Di bawah ini adalah apa yang saya miliki untuk skrip cadangan saya.

#!/bin/bash

#mysqldump variables

FILE=/home/backup/databasebk_!`date +"Y-%m-%d_%H:%M"`.sql
DATABASE=database
USER=root
PASS=my password

#backup command process

mysqldump --opt --user=${USER} --password=${PASS} ${DATABASE} > ${FILE}

#zipping the backup file

gzip $FILE

#send message to the user with the results

echo "${FILE}.gz was created:"
ls -l ${FILE}.gz

# This is where I would like to count the number of files 
# in the directory and if there are more than 5 I would like
# to delete the oldest file. Any help is greatly appreciated

Terima kasih
-Mike

Jawaban yang Diterima:

Anda dapat melihat set -- /home/backup/databasebk_* dan sementara $# lebih besar dari lima, hapus file.

Jadi kodenya akan terlihat mirip dengan

set -- /home/backup/databasebk_*
while [ $# -gt 5 ]
do
  echo "Removing old backup $1"
  rm "$1"
  shift
done

Ini berfungsi karena nama file yang Anda pilih secara otomatis dalam urutan "terlama pertama".

Untuk konsistensi saya akan menetapkan variabel (saya biasanya menyebutnya BASE tetapi Anda dapat menyebutnya apa pun yang Anda suka)

Jadi

BASE=/home/backup/databasebk_
FILE=${BASE}!`date +"%Y-%m-%d_%H:%M"`.sql
....
set -- ${BASE}*
while [ $# -gt 5 ]
do
  echo "Removing old backup $1"
  rm "$1"
  shift
done

Linux
  1. Bagaimana cara menghapus direktori dan folder di Linux?

  2. Apa Cara Terbaik Untuk Menghitung Jumlah File Dalam Direktori?

  3. Menghitung jumlah file dalam direktori menggunakan C

  1. Cara Menghitung Jumlah File dan Subdirektori di dalam Direktori yang Diberikan

  2. Cara Menemukan Jumlah File dalam Direktori dan Subdirektori

  3. Bagaimana cara menghitung jumlah file di setiap direktori?

  1. Cara Menemukan File Terlama Di Pohon Direktori Di Linux

  2. Bagaimana Cara Mendapatkan Hitungan File Dalam Direktori Menggunakan Baris Perintah?

  3. Hitung baris semua file di direktori Ubuntu