Например, у меня есть много псевдонимов для Терминала, созданного так, чтобы с одной командой я мог выполнить много команд, таким образом, у меня может быть команда для обновления rkhunter
который также делает freshclam
, который является в основном этим:
sudo rkhunter --update && sudo rkhunter --versioncheck && sudo freshclam
И я могу даже хотеть автоматизировать эту задачу так, чтобы она работала каждый час или так, однако с этим существует проблема, поскольку если любой из тех сбоев команд, затем команда после нее (если существует один), не будет выполняться. И поскольку это может также быть автоматизированной задачей, я не буду даже знать, что где-нибудь по линии что-то перестало работать, который означает, что все кроме того, даже указывает не будет выполненным.
И поскольку это - основная проблема для меня в данный момент особенно, если я хочу автоматизировать задачи через псевдонимы, и такой, не создавая сценарий и т.д., там любой способ сделать его так, чтобы, если одна из команд перестала работать для следующей команды после &&
все еще быть выполненным?
Кроме того, другая вещь состоит в том, что этого не происходит все время, на самом деле иногда это приводит к сбою и все еще выполняет следующую команду, но в большинство раз это не делает, таким образом, существует действительно даже любой способ предсказать, собирается ли это перестать работать или нет, и я даже не слишком уверен, почему это перестало работать.
Так существует ли способ зафиксировать это, и почему он перестал работать так или иначе?
Используя:
sudo rkhunter --update; sudo rkhunter --versioncheck; sudo freshclam
или, если Вам нужны логические операции
sudo rkhunter --update || sudo freshclam
sudo rkhunter --update && sudo rkhunter --versioncheck; sudo freshclam
, Делают некоторые простые тесты с echo
echo -n a; echo -n b; echo -n c
abc
echo -n a && echo -n b; echo -n c
abc
echo -n a || echo -n b; echo -n c
ac
, Объяснение
;
между командами является не больше, чем разделителем между двумя или больше командами, не рассматривая ошибки.
Это совпадает со списком команд в сценарии
command1
command2
command3
OTOH , &&
( логическая конъюнкция ) и ||
( логическое разъединение ) логические операции .
&&
, Если одно условие перестало работать, не имеет никакого смысла проверять второе или третье условие. Результатом было бы то же: отказ уже.
A B A ∧ B
------------
T T T
T F F
F T F
F F F
||
, Если, и только если, сбои условия, имеет смысл проверять второе и третье условие. Если первая команда успешно выполнится , то второй не будет выполняться, потому что результатом, как считают уже, является успех.
A B A ∨ B
------------
T T T
T F T
F T T
F F F
Я собираюсь добавить свою ценность за два цента здесь.
, Если Вы выполняете из окна терминала следующие команды, они позволяют Вам настраивать и rkhunter
и freshclam
для того, когда их обновления будут выполнены. Freshclam
на самом деле имеет демона, который может выполнять так много раз день, как Вы хотите. Во время процесса конфигурации freshclam
это просит сколько раз дня проверять на обновления. Это принимает значение по умолчанию к 24
, что означает однажды в час. rkhunter
, с другой стороны, выполнения ежедневное сканирование, но обновления еженедельно.
freshclam настраивают:
sudo dpkg-reconfigure clamav-freshclam
rkhunter настраивают:
sudo dpkg-reconfigure rkhunter