Browse Source

crontab mkvar backup

master
parent
commit
3b10a75553
  1. 1
      Script/alias_main
  2. 157
      Script/backup
  3. 19
      Script/common
  4. 79
      Script/crontab
  5. 16
      Script/install

1
Script/alias_main

@ -1,5 +1,6 @@
#!/bin/bash
source "${alias_dir}/crontab"
source "${alias_dir}/install"
source "${alias_dir}/pdf"
source "${alias_dir}/hdd"

157
Script/backup

@ -61,81 +61,106 @@ backup_delete_old_files_by_date()
}
mkalias_with_prefix 'backup_delete_old_files_by_date'
backup_date_day()
{
echo "$(date +%Yy_%mm_%dd-%Vv)"
}
mkalias_with_prefix 'backup_date_day'
backup_date()
{
echo "$(date +%Yy_%mm_%dd-%Vv-%Hh_%Mm_%Ss)"
day=$(backup_date_day)
echo "${day}-$(date +%Hh_%Mm_%Ss)"
}
mkalias_with_prefix 'backup_date'
exclude_mozilla='
--exclude=.mozilla/firefox/*/Cache
--exclude=.mozilla/firefox/*/storage/*/https*
--exclude=.mozilla/firefox/*/storage/*/http*
--exclude=.mozilla/firefox/*/storage/*/file*
'
backup_firefox()
{
backup_dir=$1
[ "$backup_dir" = '' ] && printf "Укажите папку для бекапа\n" && return
eval $(mkvar 'backup_dir|$1||Укажите папку для бекапа')
eval $(mkvar 'user|$2|$(whoami)')
#ask_continue && return
cd ~
file="${backup_dir}/$(hostname)_mozilla_backup_$(backup_date).tgz"
file_add_name="mozilla_backup"
file_pref="${backup_dir}/$(hostname)_${user}_${file_add_name}_"
[ -f "${file_pref}$(backup_date_day)*" ] && printf "Сегодня уже делался бэкап\n" && return
file="${file_pref}$(backup_date).tgz"
tar cvpzf "${file}" \
--exclude=.mozilla/firefox/*/Cache \
--exclude=.mozilla/firefox/*/storage/*/https* \
--exclude=.mozilla/firefox/*/storage/*/file* \
.mozilla
${exclude_mozilla//'\n'/' '} \
/home/${user}/.mozilla
echo "${file}"
}
mkalias_with_prefix 'backup_firefox'
exclude_home='
--exclude=*/Загрузки/* \
--exclude=*/Backup/* \
--exclude=*/Музыка/* \
--exclude=MyProgs \
--exclude=media \
--exclude=private \
--exclude=.thumbnails \
--exclude=*/.cache/* \
--exclude=/.config/chromium/*/CacheStorage \
--exclude=*/.config/skypeforlinux/Cache \
--exclude=.local \
--exclude=.var/app/app.organicmaps.desktop/data \
--exclude=.steam \
--exclude=.smartgit/updates \
--exclude=.wine*/*/windows/ \
--exclude=.googleearth \
--exclude=*/.Genymobile \
--exclude=go/pkg \
--exclude=.apt \
--exclude=.npm \
--exclude=.gradle \
--exclude=Android \
--exclude=build/intermediates \
--exclude=build/*.obj \
--exclude=chromium/*/WebStorage \
--exclude=.android \
--exclude=.VirtualBox/*.iso \
'
backup_home()
{
backup_dir=$1
[ "$backup_dir" = '' ] && printf "Укажите папку для бекапа\n" && return
eval $(mkvar 'backup_dir|$1||Укажите папку для бекапа')
#ask_continue && return
cd /home
file="${backup_dir}/$(hostname)_home_backup_$(backup_date).tgz"
file_add_name="home_backup"
file_pref="${backup_dir}/$(hostname)_${file_add_name}_"
[ -f "${file_pref}$(backup_date_day)*" ] && printf "Сегодня уже делался бэкап\n" && return
file="${file_pref}$(backup_date).tgz"
sudo tar cvpzf "${file}" \
--exclude=*home_backup*.tgz \
--exclude=*/Загрузки/* \
--exclude=*/Backup/* \
--exclude=*/Музыка/* \
--exclude=MyProgs \
--exclude=media \
--exclude=private \
--exclude=.thumbnails \
--exclude=.mozilla/firefox/*/Cache \
--exclude=.mozilla/firefox/*/storage/*/https* \
--exclude=.mozilla/firefox/*/storage/*/file* \
--exclude=*/.cache/* \
--exclude=/.config/chromium/*/CacheStorage \
--exclude=*/.config/skypeforlinux/Cache \
--exclude=.local \
--exclude=.var/app/app.organicmaps.desktop/data \
--exclude=.steam \
--exclude=.smartgit/updates \
--exclude=.wine*/*/windows/ \
--exclude=.googleearth \
--exclude=*/.Genymobile \
--exclude=go/pkg \
--exclude=.apt \
--exclude=.npm \
--exclude=.gradle \
--exclude=Android \
--exclude=build/intermediates \
--exclude=build/*.obj \
--exclude=chromium/*/WebStorage \
--exclude=.android \
--exclude=.VirtualBox/*.iso \
.
--exclude=/*${file_add_name}*.tgz \
${exclude_mozilla//'\n'/' '} \
${exclude_home//'\n'/' '} \
/home
echo "${file}"
}
mkalias_with_prefix 'backup_home'
backup_etc()
{
backup_dir=$1
[ "$backup_dir" = '' ] && printf "Укажите папку для бекапа\n" && return
eval $(mkvar 'backup_dir|$1||Укажите папку для бекапа')
#ask_continue && return
cd /
file="${backup_dir}/$(hostname)_sys_etc_backup_$(backup_date).tgz"
file_add_name="sys_etc_backup"
file_pref="${backup_dir}/$(hostname)_${file_add_name}_"
[ -f "${file_pref}$(backup_date_day)*" ] && printf "Сегодня уже делался бэкап\n" && return
file="${file_pref}$(backup_date).tgz"
sudo tar cvpzf "${file}" \
/etc
echo "${file}"
@ -144,13 +169,7 @@ mkalias_with_prefix 'backup_etc'
backup_sys()
{
backup_dir=$1
[ "$backup_dir" = '' ] && printf "Укажите папку для бекапа\n" && return
#ask_continue && return
cd /
file="${backup_dir}/$(hostname)_sysbackup_$(backup_date).tgz"
sudo tar cvpzf "${file}" \
--exclude=/*_sysbackup_*.tgz \
exclude_sys='
--exclude=/proc \
--exclude=/dev \
--exclude=/lost+found \
@ -166,6 +185,19 @@ backup_sys()
--exclude=/usr/share \
--exclude=/tmp \
--exclude=/opt \
'
eval $(mkvar 'backup_dir|$1||Укажите папку для бекапа')
#ask_continue && return
file_add_name="sysbackup"
file_pref="${backup_dir}/$(hostname)_${file_add_name}_"
[ -f "${file_pref}$(backup_date_day)*" ] && printf "Сегодня уже делался бэкап\n" && return
file="${file_pref}$(backup_date).tgz"
sudo tar cvpzf "${file}" \
--exclude=/*${file_add_name}*.tgz \
${exclude_sys//'\n'/' '} \
/
echo "${file}"
}
@ -174,12 +206,13 @@ mkalias_with_prefix 'backup_sys'
backup_firefox_and_del_old_files()
{
backup_dir=$1
[ "$backup_dir" = '' ] && printf "Укажите папку для бекапа\n" && return
[ "$backup_dir" = '' ] && backup_dir=$(pwd) && printf "Папка для бекапа '${backup_dir}'\n"
eval $(mkvar 'user|$2|$(whoami)')
#ask_continue && return
backup_host_dir="${backup_dir}/$(hostname)"
mkdir "${backup_host_dir}"
backup_ff_dir="${backup_host_dir}/firefox"
backup_ff_dir="${backup_host_dir}/firefox_${user}"
mkdir "${backup_ff_dir}"
backup_firefox "${backup_ff_dir}"
@ -190,10 +223,10 @@ mkalias_with_prefix 'backup_firefox_and_del_old_files'
backup_home_and_del_old_files()
{
backup_dir=$1
[ "$backup_dir" = '' ] && printf "Укажите папку для бекапа\n" && return
[ "$backup_dir" = '' ] && backup_dir=$(pwd) && printf "Папка для бекапа '${backup_dir}'\n"
#ask_continue && return
backup_host_dir="$(pwd)/$(hostname)"
backup_host_dir="${backup_dir}/$(hostname)"
mkdir "${backup_host_dir}"
backup_home_dir="${backup_host_dir}/home"
mkdir "${backup_home_dir}"
@ -206,10 +239,10 @@ mkalias_with_prefix 'backup_home_and_del_old_files'
backup_sys_and_del_old_files()
{
backup_dir=$1
[ "$backup_dir" = '' ] && printf "Укажите папку для бекапа\n" && return
[ "$backup_dir" = '' ] && backup_dir=$(pwd) && printf "Папка для бекапа '${backup_dir}'\n"
#ask_continue && return
backup_host_dir="$(pwd)/$(hostname)"
backup_host_dir="${backup_dir}/$(hostname)"
mkdir "${backup_host_dir}"
backup_sys_dir="${backup_host_dir}/sys"
mkdir "${backup_sys_dir}"

19
Script/common

@ -16,3 +16,22 @@ ask_continue()
fi
return 1
}
mkvar()
{
# на входе 'var_name|val|def_val|string_to_print_before_return'
p="$1"
readarray -d "|" -t cur_params <<< "$p"
var_name="${cur_params[0]}"
val="${cur_params[1]}"
def_val="${cur_params[2]}"
string_to_print_before_return="${cur_params[3]}"
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;"
fi
}

79
Script/crontab

@ -0,0 +1,79 @@
#!/bin/bash
[ "${alias_dir}" = "" ] && alias_dir=$(pwd)
source "${alias_dir}/common"
crontab_edit()
{
sudo_=$1
EDITOR=mcedit $sudo_ crontab -e
}
mkalias_with_prefix 'crontab_edit'
crontab_edit_sudo()
{
crontab_edit sudo
}
mkalias_with_prefix 'crontab_edit_sudo'
crontab_print()
{
sudo_=$1
$sudo_ crontab -l
}
mkalias_with_prefix 'crontab_print'
crontab_add_silence()
{
cmd=$1
sudo_=$2
$sudo_ crontab -l | { cat; echo "${cmd}"; } | $sudo_ crontab -
}
mkalias_with_prefix 'crontab_add_silence'
crontab_add()
{
cron_help='
#minute (0-59),
#|<---->hour (0-23),
#|<---->|<----->day of the month (1-31),
#|<---->|<----->|<----->mfreqonth of the year (1-12),
#|<---->|<----->|<----->|<----->day of the week (0-6 with 0=Sunday).
#|<---->|<----->|<----->|<----->|<----->commands
Примеры Cron заданий
Запускать команду в 15:00 каждый день с понедельника по пятницу:
0 15 * * 1-5 command
Запускать скрипт каждые 5 минут:
MAILTO=email@example.com
*/5 * * * * /path/to/script.sh > /dev/null
Запускать сценарий в первый понедельник каждого месяца в 7 часов утра:
0 7 1-7 * 1 /path/to/script.sh
Запускать сценарий в 21:15, 1 и 15 числа каждого месяца:
15 9 1,15 * * /path/to/script.sh
Запускать при старте ситемы:
@reboot /path/to/script.sh
'
cmd="$1"
sudo_=$2
[[ "$cmd" == "" ]] && printf "Укажите команду, например 'crontab_add \"00 09 * * 1-5 echo hello\"}' ${cron_help}\n" && return
printf "Добавляем команду '${cmd}'\n"
ask_continue && return
crontab_add_silence "$cmd" "$sudo_"
printf "Получившийся кронтаб:\n"
crontab_print "$sudo_"
}
mkalias_with_prefix 'crontab_add'

16
Script/install

@ -218,13 +218,10 @@ mkalias_with_prefix 'install_thinkfan'
install_max_freq()
{
printf "Установка максимальной частоты процессора\n"
ask_continue && return
# Set max freq
echo 'Выполнить
EDITOR=mcedit crontab -e
Записать туда
@reboot cpupower frequency-set --max 2.3G'
freq=$1
[[ "$freq" == "" ]] && freq="1.5G"
#ask_continue && return
crontab_add "@reboot cpupower frequency-set --max ${freq}" sudo
}
mkalias_with_prefix 'install_max_freq'
@ -275,12 +272,14 @@ set_max_perf_and_charge()
max_charge=$2
[ "${max_perf}" = "" ] && max_perf="80"
[ "${max_charge}" = "" ] && max_charge="80"
printf "Максимальная производительность в ${max_perf} и заряд в ${max_charge}\n"
printf "Установить максимальную производительность в ${max_perf} и заряд в ${max_charge}\n"
ask_continue && return
# Установить максимальный уровень заряда и поизводительности
#sudo apt-get install tlp
echo "${max_perf}" | sudo tee /sys/class/power_supply/BAT0/charge_control_end_threshold
echo "${max_charge}" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
crontab_add "@reboot echo "${max_perf}" | tee /sys/class/power_supply/BAT0/charge_control_end_threshold" sudo
crontab_add "@reboot echo "${max_charge}" | tee /sys/devices/system/cpu/intel_pstate/max_perf_pct" sudo
}
mkalias_with_prefix 'set_max_perf_and_charge'
@ -292,7 +291,6 @@ get_max_perf_and_charge()
}
mkalias_with_prefix 'get_max_perf_and_charge'
install_headers()
{
printf "Установка заголовков для исходного кода ядра linux-headers\n"

Loading…
Cancel
Save