Browse Source

Backup crontab

master
parent
commit
3875bd933a
  1. 57
      Script/backup
  2. 2
      Script/common
  3. 12
      Script/crontab

57
Script/backup

@ -61,9 +61,16 @@ backup_delete_old_files_by_date()
}
mkalias_with_prefix 'backup_delete_old_files_by_date'
backup_date_week()
{
echo "$(date +%Vv)"
}
mkalias_with_prefix 'backup_date_week'
backup_date_day()
{
echo "$(date +%Yy_%mm_%dd-%Vv)"
week=$(backup_date_week)
echo "$(date +%Yy_%mm_%dd)-${week}"
}
mkalias_with_prefix 'backup_date_day'
@ -89,7 +96,7 @@ backup_firefox()
file_add_name="mozilla_backup"
file_pref="${backup_dir}/$(hostname)_${user}_${file_add_name}_"
[ -f "${file_pref}$(backup_date_day)*" ] && printf "Сегодня уже делался бэкап\n" && return
compgen -G "${file_pref}$(backup_date_day)*" && printf "Сегодня уже делался бэкап\n" && return
file="${file_pref}$(backup_date).tgz"
@ -138,7 +145,7 @@ backup_home()
file_add_name="home_backup"
file_pref="${backup_dir}/$(hostname)_${file_add_name}_"
[ -f "${file_pref}$(backup_date_day)*" ] && printf "Сегодня уже делался бэкап\n" && return
compgen -G "${file_pref}*$(backup_date_week)*" && printf "На этой неделе уже делался бэкап\n" && return
file="${file_pref}$(backup_date).tgz"
sudo tar cvpzf "${file}" \
@ -157,13 +164,14 @@ backup_etc()
file_add_name="sys_etc_backup"
file_pref="${backup_dir}/$(hostname)_${file_add_name}_"
[ -f "${file_pref}$(backup_date_day)*" ] && printf "Сегодня уже делался бэкап\n" && return
compgen -G "${file_pref}$(backup_date_day)*" && printf "Сегодня уже делался бэкап\n" && return
file="${file_pref}$(backup_date).tgz"
sudo tar cvpzf "${file}" \
/etc
echo "${file}"
echo "Проверка на '${file_pref}$(backup_date_day)*'"
}
mkalias_with_prefix 'backup_etc'
@ -191,7 +199,7 @@ backup_sys()
file_add_name="sysbackup"
file_pref="${backup_dir}/$(hostname)_${file_add_name}_"
[ -f "${file_pref}$(backup_date_day)*" ] && printf "Сегодня уже делался бэкап\n" && return
compgen -G "${file_pref}*$(backup_date_week)*" && printf "На этой неделе уже делался бэкап\n" && return
file="${file_pref}$(backup_date).tgz"
@ -216,7 +224,7 @@ backup_firefox_and_del_old_files()
mkdir "${backup_ff_dir}"
backup_firefox "${backup_ff_dir}"
backup_delete_old_files_by_date "${backup_ff_dir}" "_mozilla_backup_@DATE\.tgz" 3 3 3 week
backup_delete_old_files_by_date "${backup_ff_dir}" "_mozilla_backup_@DATE\.tgz" 3 2 2 week
}
mkalias_with_prefix 'backup_firefox_and_del_old_files'
@ -251,3 +259,40 @@ backup_sys_and_del_old_files()
backup_delete_old_files_by_date "${backup_sys_dir}" "_sys_etc_backup_@DATE\.tgz" 3 3 3
}
mkalias_with_prefix 'backup_sys_and_del_old_files'
backup_crontab_firefox()
{
eval $(mkvar 'backup_dir|$1|$(pwd)')
eval $(mkvar 'user|$2|$(whoami)')
sudo_=""
[[ "$user" != "$(whoami)" ]] && sudo_="sudo"
cmd="0 * * * * source /home/$(whoami)/.bashrc && backup_firefox_and_del_old_files '${backup_dir}' $user"
echo "Будет установлена команда '${cmd}' с правами ${sudo_}"
ask_continue && return
crontab_add "${cmd}" ${sudo_}
}
mkalias_with_prefix 'backup_crontab_firefox'
backup_crontab_home()
{
eval $(mkvar 'backup_dir|$1|$(pwd)')
eval $(mkvar 'user|$2|$(whoami)')
sudo_="sudo"
cmd="0 * * * * source /home/$(whoami)/.bashrc && backup_home_and_del_old_files '${backup_dir}'"
echo "Будет установлена команда '${cmd}' с правами ${sudo_}"
ask_continue && return
crontab_add "${cmd}" ${sudo_}
}
mkalias_with_prefix 'backup_crontab_home'
backup_crontab_etc()
{
eval $(mkvar 'backup_dir|$1|$(pwd)')
eval $(mkvar 'user|$2|$(whoami)')
sudo_="sudo"
cmd="0 * * * * source /home/$(whoami)/.bashrc && backup_sys_and_del_old_files '${backup_dir}'"
echo "Будет установлена команда '${cmd}' с правами ${sudo_}"
ask_continue && return
crontab_add "${cmd}" ${sudo_}
}
mkalias_with_prefix 'backup_crontab_home'

2
Script/common

@ -30,7 +30,7 @@ mkvar()
if [ "${string_to_print_before_return}" == "" ]; then
echo "$var_name=$val; [[ \"\${$var_name}\" == \"\" ]] && $var_name=$def_val;"
else
echo "$var_name=$val; [[ \"\${$var_name}\" == \"\" ]] && printf(\"${string_to_print_before_return}\\n\") && return;"
echo "$var_name=$val; [[ \"\${$var_name}\" == \"\" ]] && printf \"${string_to_print_before_return}\\n\" && return;"
fi
}

12
Script/crontab

@ -55,13 +55,13 @@ MAILTO=email@example.com
0 7 1-7 * 1 /path/to/script.sh
Запускать сценарий в 21:15, 1 и 15 числа каждого месяца:
@yearly (или @annually) - запускать задание один раз в год в полночь (12:00) 1 января. Эквивалент 0 0 1 1 *.
@monthly - запускать заданное задание один раз в месяц в полночь первого дня месяца. Эквивалент 0 0 1 * *.
@weekly - запускать задание раз в неделю в полночь воскресенья. Эквивалент 0 0 * * 0.
@daily - запускать задание один раз в день в полночь. Эквивалент 0 0 * * *.
@hourly - запускать заданную задачу один раз в час в начале часа. Эквивалент 0 * * * *.
@reboot - Запустить указанное задание при запуске системы (время загрузки).
15 9 1,15 * * /path/to/script.sh
Запускать при старте ситемы:
@reboot /path/to/script.sh
'
cmd="$1"
sudo_=$2

Loading…
Cancel
Save