Ajouter backup_and_restore/archive_with_checksum.sh
This commit is contained in:
54
backup_and_restore/archive_with_checksum.sh
Normal file
54
backup_and_restore/archive_with_checksum.sh
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This script creates a .tar.xz archive of a specified source directory, preserving file permissions,
|
||||||
|
# and names the archive using the source directory's name followed by the current date in DDMMYYYY format.
|
||||||
|
# Additionally, it generates a SHA-256 checksum file for the archive in the specified output directory.
|
||||||
|
|
||||||
|
# Usage:
|
||||||
|
# 1. Make the script executable: `chmod +x archive_with_checksum`
|
||||||
|
# 2. Run the script by providing the path to the source directory as the first argument
|
||||||
|
# and the path to the output directory as the second argument.
|
||||||
|
# Example: `./archive_with_checksum /path/to/source_directory /path/to/output_directory`
|
||||||
|
#
|
||||||
|
# The script will produce an archive named `source_directory_DDMMYYYY.tar.xz` and a checksum file
|
||||||
|
# named `source_directory_DDMMYYYY.tar.xz.sha256` in the specified output directory.
|
||||||
|
|
||||||
|
# Check if the correct number of arguments is provided
|
||||||
|
if [ "$#" -ne 2 ]; then
|
||||||
|
echo "Usage: $0 source_directory output_directory"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Assign parameters
|
||||||
|
source_directory=$1
|
||||||
|
output_directory=$2
|
||||||
|
|
||||||
|
# Get the base name of the source directory (without the full path)
|
||||||
|
source_name=$(basename "$source_directory")
|
||||||
|
|
||||||
|
# Get the current date in DDMMYYYY format
|
||||||
|
current_date=$(date +%d%m%Y)
|
||||||
|
|
||||||
|
# Create the archive name with the date, based on the source directory's name
|
||||||
|
archive_name="${source_name}_${current_date}.tar.xz"
|
||||||
|
archive_path="${output_directory}/${archive_name}"
|
||||||
|
|
||||||
|
# Create the archive with file permissions preserved
|
||||||
|
tar -cJpf "$archive_path" "$source_directory"
|
||||||
|
|
||||||
|
# Confirm archive creation and create a checksum if successful
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Archive created: $archive_path"
|
||||||
|
|
||||||
|
# Generate SHA-256 checksum file for the archive in the output directory
|
||||||
|
checksum_file="${archive_path}.sha256"
|
||||||
|
sha256sum "$archive_path" > "$checksum_file"
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Checksum file created: $checksum_file"
|
||||||
|
else
|
||||||
|
echo "Error creating the checksum file."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Error creating the archive."
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user