Создание заданий cron для повторения каждых X единиц времени, начиная с произвольной единицы

Я предложил бы установить Мерзавца, и возможно, шифруя Ваш жесткий диск (или по крайней мере Ваш домашний раздел).

6
01.11.2015, 08:08
3 ответа

Возможная причина: поврежден ли ваш файл id_rsa?

Я вижу эти строки в журнале, которые выглядят подозрительно:

debug3: Incorrect RSA1 identifier
debug3: Could not load "/home/pi/.ssh/id_rsa" as a RSA1 public key

У меня нет такого сообщения, когда я делаю ssh-соединение...

-121--216731-

В интерактивном режиме всегда можно запустить сценарии, введя в командной строке ~/yourscript.sh , но это очень ограниченно, особенно если вы хотите написать больше сценариев, которые называют уже написанные сценарии.

Более интегрированный и гибкий подход включает размещение всех сценариев в одном каталоге и добавление этого каталога в переменную среды PATH .

После этого вы сможете ввести yourscript.sh , и независимо от того, в каком каталоге вы находитесь, оболочка найдет ваш сценарий и выполнит его.

Как это обычно делается:

  1. Создайте каталог bin в вашем домашнем каталоге и mv ваши сценарии в него.
  2. Измените все сценарии на исполняемые ( chmod + x ).
  3. Убедитесь, что переменная среды PATH содержит каталог $ HOME/bin . В некоторых системах ~/.profile по умолчанию автоматически добавляет каталог $ HOME/bin в PATH , поэтому перед изменением проверьте ~/.profile .

Позвольте мне проиллюстрировать с помощью сценария:

mkdir ~/bin
mv ~/*.sh ~/bin
chmod +x ~/bin/*
if ! grep 'PATH=.*HOME/bin' ~/.profile
then
    echo 'export PATH="$HOME/bin:$PATH"' >> ~/.profile
fi
. ~/.profile
echo "$PATH"      # you should see your bin directory
cd /tmp           # change to another random directory
type myscript.sh  # see if the shell finds your scripts

Если вы видите свой каталог bin в PATH , то рекомендуется выйти из системы и регистрации обратно в другой каталог, а затем снова выполнить type yourscript.sh , чтобы убедиться, что все правильно настроено.

-121--87550-

1-59/3 - более типичный и лаконичный способ его указания, означающий «каждые 3 минут начиная с 1».

17
27.01.2020, 20:20

В дополнение к ответу heemayl, вы можете перечислить нужные вам минуты, хотя это менее компактно и, вероятно, более подвержено ошибкам, чем существующий способ:

1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * some_command
7
27.01.2020, 20:20

Вы можете использовать sleep 60 в качестве первой команды, чтобы команда, которую вы хотите запустить, действительно выполнялась через 1 минуту, сохраняя время cron как */3:

*/3 * * * * sleep 60 && some_command
3
27.01.2020, 20:20

Теги

Похожие вопросы