Скрипты для Linux
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
2.5 KiB

#!/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
@yearly (или @annually) - запускать задание один раз в год в полночь (12:00) 1 января. Эквивалент 0 0 1 1 *.
@monthly - запускать заданное задание один раз в месяц в полночь первого дня месяца. Эквивалент 0 0 1 * *.
@weekly - запускать задание раз в неделю в полночь воскресенья. Эквивалент 0 0 * * 0.
@daily - запускать задание один раз в день в полночь. Эквивалент 0 0 * * *.
@hourly - запускать заданную задачу один раз в час в начале часа. Эквивалент 0 * * * *.
@reboot - Запустить указанное задание при запуске системы (время загрузки).
'
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'