Вам нужно запустить crontab -e для пользователя, который запустит скрипт - sudo crontab -e для root или sudo -u user_name -e, для редактирования crontab для имени пользователя. Вставьте @reboot /path/to/file (NB! Не забывайте пустую новую строку). Сам сценарий должен выглядеть так:
#!/bin/bash
do_your_stuff
# remove from root specific crontab setting all the information about the script
sed -i '/@reboot \/path\/to\/file/d' /var/spool/cron/crontabs/root
# remove the script file itself
rm -- "$0"
# reboot the machine in 2 minutes
shutdown -r +2
Чтобы автоматизировать этот процесс, вы можете использовать Ansible. Вот пример простой пьесы, я запустил ее на своем локальном хосте:
---
- hosts: localhost
tasks:
- name: cron job
cron:
name: "a job for reboot"
special_time: reboot
job: "/path/to/file"
Во-первых, вам нужно запустить playbook, он обновляет задачи cron для root. После перезагрузки сценарий должен быть удален так же, как запись файла /var/spool/cron/crontabs/root с строкой root . Вы можете свободно изменять файл, чтобы полностью удалить crontab для root.
Хотя tput очень удобна для мобильных сред, ASCII-раскраска всегда является альтернативой:
echo -e "\x1B[31m MR ROBOT \x1B[0m"
выведет термин MR ROBOT в красный шрифт.
\x1B[31m = RED
\x1B[32m = GREEN
\x1B[96m = Blue
\x1B[01;95m = PURPLE
\x1B[01;94m = VIOLET
\x1B[01;93m = Yellow
\x1B[01;91m = ORANGE
\x1B[01;90m = GREY
\x1B[01;89m = WHITE
\x1B[0m = Back to your terminal's default colour
2] Связано: Как изменить выходной цвет эха в Linux на Stack Overflow Хотя tput очень удобна для мобильных сред, ASCII-раскраска всегда является альтернативой:
echo -e "\x1B[31m MR ROBOT \x1B[0m"
выведет термин MR ROBOT в красный шрифт.
\x1B[31m = RED
\x1B[32m = GREEN
\x1B[96m = Blue
\x1B[01;95m = PURPLE
\x1B[01;94m = VIOLET
\x1B[01;93m = Yellow
\x1B[01;91m = ORANGE
\x1B[01;90m = GREY
\x1B[01;89m = WHITE
\x1B[0m = Back to your terminal's default colour
Связано: Как изменить выходной цвет эха в Linux на Stack Overflow
Хотя tput очень удобна для мобильных сред, ASCII-раскраска всегда является альтернативой:
echo -e "\x1B[31m MR ROBOT \x1B[0m"
выведет термин MR ROBOT в красный шрифт.
\x1B[31m = RED
\x1B[32m = GREEN
\x1B[96m = Blue
\x1B[01;95m = PURPLE
\x1B[01;94m = VIOLET
\x1B[01;93m = Yellow
\x1B[01;91m = ORANGE
\x1B[01;90m = GREY
\x1B[01;89m = WHITE
\x1B[0m = Back to your terminal's default colour
Связано: Как изменить выходной цвет эха в Linux на Stack Overflow
Попробуйте использовать это:
$ tput setaf 1; echo 'MR ROBOT'; tput sgr0
И, как объяснено в комментариях, не выполняйте в коде свои последовательности escape-последовательности ANSI цвета! Команда tput позволяет вам разумно взаимодействовать с базой данных терминала:
Попробуйте использовать это:
$ tput setaf 1; echo 'MR ROBOT'; tput sgr0
И, как объяснено в комментариях, не выполняйте в коде свои последовательности escape-последовательности ANSI цвета! Команда tput позволяет вам разумно взаимодействовать с базой данных терминала:
Попробуйте использовать это:
$ tput setaf 1; echo 'MR ROBOT'; tput sgr0
И, как объяснено в комментариях, не выполняйте в коде свои последовательности escape-последовательности ANSI цвета! Команда tput позволяет вам разумно взаимодействовать с базой данных терминала: