2013-02-25 5 views
1

Я нахожусь в моем первом семестре сценариев BASH, и у меня есть некоторые трудности. Я занимался другими курсами программирования, такими как C++ или Java, но синтаксис Bash убивает меня. Мне бы хотелось получить совет по этой проблеме. Мне нужно сделать следующее:Basic Shell Scripting in BASH

  • Extract Сегодняшние данные из/вар/Журнал/безопасный файл
  • Проверьте, чтобы увидеть, если у меня есть каталог с именем «mylogs»
  • Если я не - то создать один
  • Проверьте, есть ли у вас файл, соответствующий текущему дню, месяцу и часу в каталоге 'mylogs'.
  • Если вы это сделаете, эхо на экран «Файл существует, ничего не записано в мой журнал» и выход. Если он не существует, напишите сегодняшние данные из/var/log/secure в файл 'mylog-month-day-hour'. Пример (4 февраля в 2 часа дня): mylog-02-04-14

Мне просто нужна помощь с частью синтаксиса скрипта.

Спасибо - мне понравятся любые сайты, помогающие в BASH.

+0

Я рекомендую вам сузить свой вопрос до чего-то с окончательным ответом. – Mikhail

+1

Это действительно похоже на список назначений для вашего класса. http://whatHaveYouTried.com? Удачи. – shellter

ответ

2
  • экстракт Сегодня данные из/вар/Журнал/безопасный файл

Вы могли бы это сделать ...

grep "^Feb 24" /var/log/secure 
  • Проверьте, чтобы увидеть, если у меня есть каталог с именем 'mylogs' и если я не - то создать один

Вы может это сделать ...

test -d mylogs || mkdir mylogs 
  • Проверьте, есть ли у вас файл, соответствующий текущему дню, месяцу и часу в каталоге «mylogs». (Имена Предполагая файлов формата DDMMHH)

    тест -e mylogs/`дата +% d% м% H` & & эхо "У меня уже есть файл"

  • Если да, то эхо экран «Файл существует, ничего не записано в мой журнал» и не выйдет. Если он не существует, напишите сегодняшние данные из/var/log/secure в файл mylog-month-day-hour.Пример (4 февраля в 2 часа дня): mylog-02-04-14

Э-э-э-э-э-э-эй вы должны получить эту идею. Вы можете решить эту проблему, я думаю;) Полезная команда знать man -k <keyword>

+0

Спасибо - мой единственный вопрос (я изучал это) заключается в том, что мне нужно, чтобы он выполнялся каждый день - так работает Grep Feb 24 не будет работать - так есть переменная для даты? – Dhunt90

+2

'man date' должен помочь вам –

+1

, если вам нужно запланировать задания, вы должны прочитать' man cron' –

1
+0

Спасибо - и если бы я хотел взять дату из/var/log/secure - я бы использовал grep? – Dhunt90

+0

Да, это хороший инструмент поиска. Когда мой сервер был взломан, я обнюхивал детали с помощью grep. – Stepo

+0

grep, sed, awk, cut, find, date, tr, test, '>', '<', '|' (я, вероятно, оставлю несколько), все команды, которые вам нужны, чтобы прочитать manpages, если вы хотите быть опытным в написании сценария оболочки. –