BCE-C712 Linux System Administration

0 of 74 lessons complete (0%)

System Backup & Recovery, Active Directory, LDAP

Backup Schedules and Methods

You don’t have access to this lesson

Please register or sign in to access the course content.

In Linux, you have several options for creating backups, and the choice of method will depend on your specific needs, the amount of data you’re dealing with, and your infrastructure. Here are some common backup schedules and methods in Linux:

Backup Schedules:

  1. Cron Jobs:
    • Description: Cron is a time-based job scheduler in Linux that allows you to automate tasks, including backups, at specified intervals.
    • Usage: You can create a cron job to run a backup script at specific times (e.g., daily, weekly, etc.).
    • Example: To schedule a daily backup at 2 AM, you can add a line to your crontab file:
0 2 * * * /path/to/backup_script.sh
  1. Systemd Timers:
    • Description: Systemd is the default init system in many modern Linux distributions. It includes a timer functionality that can be used for scheduling tasks.
    • Usage: Similar to cron jobs, you can create systemd timer units to trigger backup scripts.
    • Example: Create a .timer file and link it to a corresponding .service file.
  2. Anacron:
    • Description: Anacron is a periodic command scheduler designed to run tasks that don’t need to be executed at exact times.
    • Usage: Anacron is useful for systems that may not be running 24/7, as it ensures that scheduled tasks are executed when the system is next powered on.
    • Example: Create a file in /etc/cron.daily with your backup script, and it will be executed by anacron.

Backup Methods:

  1. Tar and Gzip:
    • Description: tar is a utility used to create compressed archive files, and gzip is a compression program. Together, they can be used to create a backup archive.
    • Usage: Create a tarball of the files or directories you want to back up, then compress it with gzip.
    • Example: tar -czvf backup.tar.gz /path/to/source
  2. rsync:
    • Description: rsync is a powerful utility for synchronizing files between different locations, which can be used for both local and remote backups.
    • Usage: It can be used to perform incremental backups by only copying files that have changed since the last backup.
    • Example: rsync -avz /path/to/source/ /path/to/destination/
  3. dd:
    • Description: dd is a command-line utility for copying and converting data. It can be used to create a disk image, which is an exact copy of a disk or partition.
    • Usage: Create an image of the entire disk or a specific partition.
    • Example: dd if=/dev/sda of=/path/to/backup.img bs=4M
  4. Backup Software (e.g., Bacula, Amanda, Duplicity):
    • Description: There are several backup solutions available for Linux that provide more advanced features like encryption, deduplication, and support for various storage backends.
    • Usage: Install and configure the chosen backup software according to its documentation.
  5. Version Control Systems (e.g., Git, SVN):
    • Description: While primarily used for tracking code changes, version control systems can also be used to manage and version files, making them a form of backup.
    • Usage: Commit and push your files to a remote repository to keep them backed up.
  6. Cloud Storage and Sync Services (e.g., rsync with cloud providers, Rclone):
    • Description: You can use tools like rsync or specialized utilities like Rclone to synchronize local data with cloud storage providers like Amazon S3, Google Drive, etc.
    • Usage: Set up synchronization jobs to copy your data to the cloud.

Remember to regularly test your backups to ensure they can be restored successfully. Additionally, consider encrypting sensitive data and using access controls to protect your backups.

Process to setup Manual and Automatic Backup

Manual Backup Process:

Step 1: Create a Directory for Backups

mkdir /backup

Step 2: Copy Data to Backup Directory

cp -r /source_directory /backup/

In this example, replace /source_directory with the actual path of the directory you want to back up.

Automated Backup Process:

Step 1: Create a Bash Script for Backup

Create a new file, for example, backup_script.sh, using a text editor like nano or vi:

nano backup_script.sh

Step 2: Write the Backup Script

#!/bin/bash

# Create a timestamp for the backup
timestamp=$(date +%Y%m%d%H%M%S)

# Define source and backup directories
source_dir="/source_directory"
backup_dir="/backup"

# Create a backup directory with a timestamp
mkdir "$backup_dir/backup_$timestamp"

# Copy data to the backup directory
cp -r "$source_dir" "$backup_dir/backup_$timestamp/"

In this script:

  • Replace /source_directory with the actual source directory you want to back up.
  • This script creates a timestamped backup directory each time it’s run.

Step 3: Make the Script Executable

chmod +x backup_script.sh

Step 4: Test the Script

Run the script to ensure it’s working as expected:

./backup_script.sh

Step 5: Schedule the Script

Use a tool like cron to schedule the script to run automatically at specified intervals. Edit the crontab file:

crontab -e

Add the following line to run the script daily at 2 AM:

0 2 * * * /path/to/backup_script.sh

Replace /path/to/backup_script.sh with the actual path to your script.

Summary:

  • The manual backup process involves creating a backup directory and copying data using the cp command.
  • The automated backup process uses a Bash script to perform the backup, which is then scheduled to run at specific intervals using cron.

Remember to customize the paths and settings in the script to match your specific environment. Additionally, for critical data, consider encrypting and storing backups in a secure offsite location to enhance data protection.