#!/bin/bash # info: backup all users # options: NONE # # The function backups all system users. scriptname="v-backup-users" for pid in $(pidof -x "$scriptname"); do if [ $pid != $$ ]; then echo "[$(date)] : $scriptname : Process is already running with PID $pid" exit 1 fi done #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Importing system environment as we run this script # mostly by cron which not read it by itself source /etc/profile # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf ALLOW_MYSQL_REPAIR=1 if [ $# -ge 1 ]; then ALLOW_MYSQL_REPAIR=$1 fi #----------------------------------------------------------# # Action # #----------------------------------------------------------# log=$VESTA/log/backup.log $BIN/v-check-vesta-license >/dev/null touch $log if [ ! -z "$NOTIFY_ADMIN_FULL_BACKUP" ]; then mv $log $log-`date +"%Y-%m-%d--%H:%M:%S"` fi # Auto-repair all databases before backuping all accounts if [ $ALLOW_MYSQL_REPAIR -eq 1 ]; then nice -n 19 ionice -c 3 mysqlrepair --all-databases --check --auto-repair >> $log 2>&1 fi if [ -z "$BACKUP_SYSTEM" ]; then exit fi FINAL_STATUS='OK' i_am_in_backup_all_users=1 for user in $(grep '@' /etc/passwd |cut -f1 -d:); do if [ ! -f "$VESTA/data/users/$user/user.conf" ]; then continue; fi wait_for_backup_if_it_is_not_time_for_backup check_suspend=$(grep "SUSPENDED='no'" $VESTA/data/users/$user/user.conf) if [ ! -z "$check_suspend" ]; then echo -e "================================" >> $log echo -e "$user" >> $log echo -e "--------------------------------\n" >> $log i_am_in_backup_all_users=0 nice -n 19 ionice -c 3 $BIN/v-backup-user $user >> $log 2>&1 STATUS=$? if [ $STATUS -ne 0 ]; then FINAL_STATUS='CONTAINS ERRORS !!!' fi i_am_in_backup_all_users=1 echo -e "\n--------------------------------\n\n" >> $log fi done if [ ! -z "$NOTIFY_ADMIN_FULL_BACKUP" ]; then cat $log |$SENDMAIL -s "Full backup report for $HOSTNAME; status=$FINAL_STATUS" "$NOTIFY_ADMIN_FULL_BACKUP" 'yes' fi if [ ! -z "$NOTIFY_ADMIN_FULL_BACKUP2" ]; then cat $log |$SENDMAIL -s "Full backup report for $HOSTNAME; status=$FINAL_STATUS" "$NOTIFY_ADMIN_FULL_BACKUP2" 'yes' fi #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# # No Logging #log_event "$OK" "$ARGUMENTS" exit