---
- name: Ubuntu Data Backup Automation by Ansible
hosts: source_servers
become: yes
vars:
source_dir: "/path/to/source" # Change to the actual folder to back up
dest_dir: "/path/to/destination" # Change to the actual backup location on DESTINATION server
destination_server: "destination_user@destination_server_ip"
ssh_key: "~/.ssh/id_rsa" # Change to the correct SSH key
max_copy_size: "500G" # Maximum data copy per transfer
check_interval: "1h" # Interval between checks
log_file: "/var/log/backup.log"
tasks:
- name: Install required packages
apt:
name: rsync
state: present
- name: Ensure SSH key exists for passwordless authentication
ansible.builtin.copy:
src: "{{ ssh_key }}.pub"
dest: "/home/{{ ansible_user }}/.ssh/authorized_keys"
remote_src: yes
- name: Create backup script
copy:
dest: "/usr/local/bin/backup_script.sh"
mode: "0755"
content: |
#!/bin/bash
LOGFILE={{ log_file }}
echo "Backup process started at $(date)" >> $LOGFILE
# Check if jobs are running on the cluster
JOBS_RUNNING=$(some_command_to_check_jobs) # Replace with actual job-checking command
if [[ "$JOBS_RUNNING" == "0" ]]; then
echo "No jobs running, starting backup..." >> $LOGFILE
rsync -az --progress --max-size={{ max_copy_size }} -e 'ssh -i {{ ssh_key }}' {{ source_dir }}/ {{ destination_server }}:{{ dest_dir }}/ >> $LOGFILE 2>&1
echo "Backup completed at $(date)" >> $LOGFILE
else
echo "Jobs running, skipping backup." >> $LOGFILE
fi
- name: Create cron job for periodic backup
ansible.builtin.cron:
name: "Automated Cluster Data Backup"
job: "/usr/local/bin/backup_script.sh"
minute: "0"
hour: "*/1" # Runs every hour
Ubuntu Data Backup Automation by Ansible

<summary> .NET Awesome Links BPMN BPMS c# Chocolatey Cluster Server Command Window Community Edition Dance DataGrid Diff DiffFiles Dig Examples Font Family FORTRAN go Google Admin Toolbox Install LibreCAD MinGW OpenForm OpenRadioss Opensource ParaView PhotoScapeX pip QCAD tags Tips Violin WP Control WPF xps15 zbuild 一括変更 罫線 色

コメントを残す
コメントを投稿するにはログインしてください。