Как сделать журнал - вращаются, изменение вступают в силу

shopt только влияет на поведение оболочки, в которой выполняется та команда. Если Вы вставляете его ~/.bashrc затем, это будет влиять на невход в систему, интерактивные оболочки и команды работают на основе rsh/ssh (оболочки входа в систему могут также быть затронуты если ~/.bashrc получен в ~/.profile или ~/.bash_profile).

Установка переменной среды BASHOPTS кому: extglob будет влиять на все интерактивные или неинтерактивные оболочки удара, запущенные, в то время как та переменная среды установлена (если их не называют как sh).

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

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

В то время как это верно для некоторых опций, это не для extglob поскольку это было тщательно разработано (David Korn, когда это прибывает из ksh), чтобы не повредить обратную совместимость с Оболочкой Bourne (и объясняет, почему синтаксис является настолько неловким).

В основном что-либо с помощью расширилось, шарики будут синтаксической ошибкой в Оболочке Bourne или в синтаксисе оболочки POSIX. Если Граница или сценарий POSIX имели echo @(a), это было бы повреждено (из-за неупомянутой круглой скобки). Не имело бы значения, если бы внезапно это начало производить "a" вместо сообщения об ошибке.

То, почему удар не включает его, по умолчанию не ясно мне, учитывая, что удар не имеет никакой другой альтернативы, расширилось, собственный синтаксис шарика как zsh делает.

Править. В то время как David Korn очень старался не повредить совместимость Границы/POSIX, похоже, что удар не был так осторожен и, вероятно, почему как это не включают по умолчанию в ksh.

В ksh (и zsh в ksh эмуляции), расширенные globbing операторы отключены при выполнении globbing на параметр или управляют заменой:

$ touch a
$ a='@(a)' ksh93 -c 'echo $a'
@(a)

В то время как в ударе, это не имеет место:

$ a='@(a)' BASHOPTS=extglob bash -c 'echo $a'
a
105
13.01.2015, 08:21
4 ответа
  • logrotate[11732] использует для работы [11733]crontab[11734]. Это запланированная работа, а не демон, так что нет необходимости перезагружать его конфигурацию.[11735]. Когда кронтаб [11736] выполнит [11738] logrotate [11739], он автоматически воспользуется вашим новым конфигурационным файлом.[11740]. Если вам необходимо протестировать конфигурацию, вы также можете выполнить [11741]logrotate[11742] самостоятельно с помощью команды:
  • или, как указано в комментариях, идентифицируйте строку [11966]logrotate[11967] в выводе команды [11968]crontab -l[11969] и выполните командную строку [11744], обратившись к ответу [11745]slm[11746], чтобы получить точное объяснение cron.daily.

    145
    27.01.2020, 19:29
    Он должен быть автоматическим через cron. Вы можете заставить его проверить свои изменения.

    ping google.com >> "%USERPROFILE%\Desktop\list.txt"
    
    Для глобального логротата:

    1. Для одного файла конфи:
    33
    27.01.2020, 19:29
    Большинство настроек [11753] логротата [11754], которые я видел на различных дистрибутивах, заканчиваются на [11755]/etc/cron.daily[11756]. Там есть скрипт оболочки с подходящим именем [11757]logrotate[11758].

    Пример

    Manual run

    enter image description here

    Если вы хотите, чтобы он выполнялся вручную, просто запустите скрипт от имени root:

    enter image description here

    Если вы посмотрите на скрипт, который обычно там есть, он покажет вам, как вы можете также запустить [11759]logrotate[11760] вручную, просто запустив [11761]logrotate[11762] + путь к его конфигурационному файлу.

    40
    27.01.2020, 19:29

    На моей машине CentOS 6.5 для настройки LOGROTATEFOR для Nginx мне пришлось сделать это:

    logrotate /etc/logrotate.d/nginx
    

    , а затем я проверил, если Logrotate ухаживает о моей новой конфигурации Nginx, как это:

    cat /var/lib/logrotate.status
    
    5
    27.01.2020, 19:29

    Теги

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