monitorize_save_file.sh: Cambiados los echo por printf
monitorize_save_file.sh: Ya guarda en ficheros tar comprimidos
This commit is contained in:
+49
-36
@@ -1,49 +1,62 @@
|
||||
#!/bin/bash
|
||||
|
||||
readonly USAGE="
|
||||
USAGE:
|
||||
$(basename "$0") [FILE]"
|
||||
|
||||
function help_message() {
|
||||
echo "$USAGE"
|
||||
}
|
||||
|
||||
# check if there is any parameter
|
||||
# Comprueba los parametros
|
||||
if [ "$#" -ne 1 ]; then
|
||||
help_message
|
||||
printf "Uso: %s FILE_NAME\n" "$(basename "$0")"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# check if the parameter is valid
|
||||
if ! test -f "$1"; then
|
||||
echo "File $1 does not exist."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# variables
|
||||
readonly FILE_DIR="$(cd "$(dirname "$1")" && pwd)"
|
||||
readonly FILE="$(basename "$1")"
|
||||
|
||||
OLD_DATE="$(date -r "$1" "+%Y-%m-%d_%H:%M:%S")"
|
||||
cp "${FILE_DIR}/${FILE}" "${FILE_DIR}/${FILE}.${OLD_DATE}"
|
||||
if ! test -f "${FILE_DIR}/${FILE}.tar"; then
|
||||
tar -C "${FILE_DIR}" -cf "${FILE_DIR}/${FILE}.tar" "${FILE}.${OLD_DATE}"
|
||||
echo "File ${FILE}.tar created."
|
||||
echo "${FILE}.${OLD_DATE}"
|
||||
else
|
||||
tar -C "${FILE_DIR}" -rf "${FILE_DIR}/${FILE}.tar" "${FILE}.${OLD_DATE}"
|
||||
echo "${FILE}.${OLD_DATE}"
|
||||
# Comprueba si existe el fichero
|
||||
if ! test -f "$1"; then
|
||||
printf "File %s does not exist.\n" "$1"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
rm "${FILE_DIR}/${FILE}.${OLD_DATE}"
|
||||
|
||||
# Variables
|
||||
FILE_DIR="$(cd "$(dirname "$1")" && pwd)"
|
||||
readonly FILE_DIR
|
||||
|
||||
FILE_NAME="$(basename "$1")"
|
||||
readonly FILE_NAME
|
||||
|
||||
SUFFIX=".tar.gz"
|
||||
readonly SUFFIX
|
||||
|
||||
# Crea una copia del fichero y le añade al nombre la fecha
|
||||
OLD_DATE="$(date -r "$1" "+%Y-%m-%d_%H:%M:%S")"
|
||||
cp "${FILE_DIR}/${FILE_NAME}" "${FILE_DIR}/${FILE_NAME}.${OLD_DATE}"
|
||||
|
||||
# Añade la copia del fichero al fichero .tar.gz o crea uno nuevo
|
||||
if ! test -f "${FILE_DIR}/${FILE_NAME}${SUFFIX}"; then
|
||||
tar -C "${FILE_DIR}" -caf "${FILE_DIR}/${FILE_NAME}${SUFFIX}" "${FILE_NAME}.${OLD_DATE}"
|
||||
printf "File %s${SUFFIX} created.\n" "${FILE_NAME}"
|
||||
else
|
||||
gunzip "${FILE_DIR}/${FILE_NAME}${SUFFIX}"
|
||||
tar -C "${FILE_DIR}" -uaf "${FILE_DIR}/${FILE_NAME}.tar" "${FILE_NAME}.${OLD_DATE}"
|
||||
gzip "${FILE_DIR}/${FILE_NAME}.tar"
|
||||
fi
|
||||
printf "%s\n" "${FILE_NAME}.${OLD_DATE} added"
|
||||
rm "${FILE_DIR}/${FILE_NAME}.${OLD_DATE}"
|
||||
|
||||
# Comprueba cada cierto tiempo si el fichero se ha modificado
|
||||
while true; do
|
||||
sleep 5
|
||||
sleep 60
|
||||
# Obten la fecha del fichero
|
||||
DATE="$(date -r "$1" "+%Y-%m-%d_%H:%M:%S")"
|
||||
# Si la fecha del fichero ha cambiado respecto a la que tenia almacenada es porque es una versión
|
||||
# nueva del fichero y se procede a hacer una copia en el fichero .tar.gz
|
||||
if [ "$DATE" != "$OLD_DATE" ]; then
|
||||
echo "${FILE}.${DATE}"
|
||||
cp "${FILE_DIR}/${FILE}" "${FILE_DIR}/${FILE}.${DATE}"
|
||||
tar -C "${FILE_DIR}" -rf "${FILE_DIR}/${FILE}.tar" "${FILE}.${DATE}"
|
||||
rm "${FILE_DIR}/${FILE}.${DATE}"
|
||||
# Crea una copia del fichero y le añade al nombre la fecha
|
||||
cp "${FILE_DIR}/${FILE_NAME}" "${FILE_DIR}/${FILE_NAME}.${DATE}"
|
||||
# Añade la copia del fichero al fichero .tar.gz
|
||||
gunzip "${FILE_DIR}/${FILE_NAME}${SUFFIX}"
|
||||
tar -C "${FILE_DIR}" -uaf "${FILE_DIR}/${FILE_NAME}.tar" "${FILE_NAME}.${DATE}"
|
||||
gzip "${FILE_DIR}/${FILE_NAME}.tar"
|
||||
# Elimina la copia del fichero
|
||||
rm "${FILE_DIR}/${FILE_NAME}.${DATE}"
|
||||
# Actualiza la fecha del fichero a la de la última copia
|
||||
OLD_DATE=$DATE
|
||||
# Informa por pantalla
|
||||
printf "%s\n" "${FILE_NAME}.${DATE} added"
|
||||
fi
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user