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
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' |
|
|
|
|
|
|