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
|
#!/bin/bash
|
||||||
|
|
||||||
readonly USAGE="
|
# Comprueba los parametros
|
||||||
USAGE:
|
|
||||||
$(basename "$0") [FILE]"
|
|
||||||
|
|
||||||
function help_message() {
|
|
||||||
echo "$USAGE"
|
|
||||||
}
|
|
||||||
|
|
||||||
# check if there is any parameter
|
|
||||||
if [ "$#" -ne 1 ]; then
|
if [ "$#" -ne 1 ]; then
|
||||||
help_message
|
printf "Uso: %s FILE_NAME\n" "$(basename "$0")"
|
||||||
exit 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
|
else
|
||||||
tar -C "${FILE_DIR}" -rf "${FILE_DIR}/${FILE}.tar" "${FILE}.${OLD_DATE}"
|
# Comprueba si existe el fichero
|
||||||
echo "${FILE}.${OLD_DATE}"
|
if ! test -f "$1"; then
|
||||||
|
printf "File %s does not exist.\n" "$1"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
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
|
while true; do
|
||||||
sleep 5
|
sleep 60
|
||||||
|
# Obten la fecha del fichero
|
||||||
DATE="$(date -r "$1" "+%Y-%m-%d_%H:%M:%S")"
|
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
|
if [ "$DATE" != "$OLD_DATE" ]; then
|
||||||
echo "${FILE}.${DATE}"
|
# Crea una copia del fichero y le añade al nombre la fecha
|
||||||
cp "${FILE_DIR}/${FILE}" "${FILE_DIR}/${FILE}.${DATE}"
|
cp "${FILE_DIR}/${FILE_NAME}" "${FILE_DIR}/${FILE_NAME}.${DATE}"
|
||||||
tar -C "${FILE_DIR}" -rf "${FILE_DIR}/${FILE}.tar" "${FILE}.${DATE}"
|
# Añade la copia del fichero al fichero .tar.gz
|
||||||
rm "${FILE_DIR}/${FILE}.${DATE}"
|
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
|
OLD_DATE=$DATE
|
||||||
|
# Informa por pantalla
|
||||||
|
printf "%s\n" "${FILE_NAME}.${DATE} added"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user