Как настроить Крон для выполнения команды mysqlauditgrep в течение 11:00 в пятницу

В конце файла, который вы используете, есть каналы строк стиля Windows (CR) (то же самое произошло со мной с помощью Cygwin в Windows XP).

Используйте «dos2unix.exe» для исправления ошибки, и вы должны быть в порядке:

$ dos2unix.exe script.sh

dos2unix: converting file script.sh to Unix format...

Затем повторно запустите сценарий, и эти сообщения об ошибках больше не должны появляться.

-121--109287-

Вы не сказали, хотите ли вы сохранить эти проблемные имена файлов. Одним из решений может быть «исправление» проблемы раз и навсегда путем переименования (некоторые или все) ваши файлы в имена, которые вы можете ввести, запустив этот сценарий:

#!/bin/sh
for old in *
do
      printf "%s ...? " "$old"
      if read new  &&  [ "$new" != "" ]
      then
             mv -i "$old" "$new"
      fi
done

Здесь будут перечислены существующие имена файлов, за которыми следуют ...? . Просто введите Enter , чтобы оставить файл как есть; или введите новое имя, чтобы переименовать его. Опция -i вызовет запрос на подтверждение перезаписи если указано имя другого существующего файла.

Этот сценарий можно изменить несколькими способами:

  • Можно изменить подстановочный символ ( * ) на более ограничительный, например, * .avi * .mov , поэтому вам не нужно просматривать каждый файл.
  • Можно изменить значение mv на cp , таким образом, вы сохраняете копию файла с его текущим именем и создайте (временную?) копию с типизированным именем.
  • Можно создать новое имя файла, основанное на существующем имени файла. Например,

     при чтении pfx & & [«$ pfx»! = «»]
    тогда
    mv -i «$ old» «$ pfx $ old»
    fi
    

    , что позволяет получить префикс перед старым именем. Если выбран уникальный префикс, это позволит использовать автозаполнение.

-121--15006-

Я почти уверен, что bash не может этого сделать. Но в zsh

foo() { 
 local -a compcontext
 compcontext=( ${(f)"$(</tmp/names)"} )
 vared -c -p 'Enter in user: ' user
}

создает список совпадений из файла с одним именем в каждой строке.

Или, если вы хотите завершить слова для чтения, а не для ввода; в баше полностью -W «$ (.

1
26.11.2018, 00:55
1 ответ

Ваша запись в crontab:

00 11 * * fri root usr/bin/mysqlauditgrep   mysqlauditgrep --format=GRID /var/lib/mysql/audit.log

Формат таблицы:

# m h dom mon dow user  command

Итак, ваша команда выглядит так:

usr/bin/mysqlauditgrep   mysqlauditgrep --format=GRID /var/lib/mysql/audit.log

Что недействительно, нет ведущих / и mysqlauditgrep повторяется.

Попробуйте следующее:

00 11 * * fri  root  /usr/bin/mysqlauditgrep --format=GRID /var/lib/mysql/audit.log

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

Также проверьте, что mysqlauditgrep находится в каталоге / usr / bin / , вы можете найти его с помощью команды: which mysqlauditgrep .

Если у вас возникнут другие проблемы, попробуйте изучить журнал вашего демона cron, обычно вы можете увидеть все ошибки там.

0
28.01.2020, 01:55

Теги

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