Помогите советом

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
zik
мл. сержант
Сообщения: 134
Зарегистрирован: 2007-05-24 21:14:01
Откуда: Одесса
Контактная информация:

Помогите советом

Непрочитанное сообщение zik » 2009-02-09 14:35:58

Здравствуйте все :)
У меня вот такая задачка, надо срочно написать три простейших скрипта, причём до вечера ... Проблема в том что последний раз писал скрипты 2 года назад и вобще начисто забыл это дело. Сейчас сижу срочно ищу и учу shell , но что-то пока ну очень слабо получается. Так что пните в нужную сторону, что делать. За меня скрипты писать не прошу, просто подсказать куда рыть (хотя если такое случиться, что кто-то даст код то буду по человечески благодарен - потому что мне это очень срочно и важно). Вот самое задание для скриптов:

Код: Выделить всё

* Produce directory listing sorted randomly. 

* Find and show all rows (and their numbers) from file, with string 'bill@microsoft.com', 'manager@microsoft.com' or 'billing@microsoft.com' (case insensetive) 

* It is possible rootkit-like virus is living on server. Create script to check if ps program is skipping some processes, locate them and show their info. 
Всем спасибо.
Последний раз редактировалось zik 2009-02-09 19:46:41, всего редактировалось 1 раз.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Помочите советом

Непрочитанное сообщение hizel » 2009-02-09 14:44:58

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

(фот нашёл вариант ответа без ругани и сорказма :oops: , думал минут 10-ть)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
zik
мл. сержант
Сообщения: 134
Зарегистрирован: 2007-05-24 21:14:01
Откуда: Одесса
Контактная информация:

Re: Помочите советом

Непрочитанное сообщение zik » 2009-02-09 14:51:48

Про что речь ?.. Я не понял.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Помочите советом

Непрочитанное сообщение zg » 2009-02-09 14:57:03

zik писал(а):* Produce directory listing sorted randomly.
ls -1f
zik писал(а):* Find and show all rows (and their numbers) from file, with string 'bill@microsoft.com', 'manager@microsoft.com' or 'billing@microsoft.com' (case insensetive)
grep -Ei '(bill@microsoft.com|manager@microsoft.com|billing@microsoft.com)' file
zik писал(а):It is possible rootkit-like virus is living on server. Create script to check if ps program is skipping some processes, locate them and show their info.
хз... если линукс, то это одно, если фря, то это другое

а вообще вопросы элементарные.

Если под винду, то читайте help

Аватара пользователя
zik
мл. сержант
Сообщения: 134
Зарегистрирован: 2007-05-24 21:14:01
Откуда: Одесса
Контактная информация:

Re: Помогите советом

Непрочитанное сообщение zik » 2009-02-09 20:04:00

Спасибо, zg

1) Хм ... ls -1f не сортирует поросто, но оно ж не вывод рандомно, просто я тоже так сначала хотел сделать.
2) Насчёт второго пункта, добавил щё ключ -n чтоб показывало номер строки и всё было ка кнадо. Спасибо :)
3) А как бы предложили сделать ? Потому что у меня вобще вариантов нет, только сравнивать с /proc диеркторией и всё (и то я пока смутно понимаю как это реализовать)

Ещё подкинули задание:

Код: Выделить всё

* Configure crontab task to send an empty email to bill@microsoft.com each second tuesday of each month.


Мне кажетья через крон так нельзя сделать ... Разве что как через скрипт, но как ... Думал, просто сделать так:

* * * * */2 /usr/bin/mail -s "Test" _linuxoid_@mail.ru < /dev/null

Но такая связка, даже если заработает то запустит только через вторник, а не каждый второй вторник.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Помогите советом

Непрочитанное сообщение zg » 2009-02-09 20:33:52

zik писал(а):1) Хм ... ls -1f не сортирует поросто, но оно ж не вывод рандомно, просто я тоже так сначала хотел сделать.

Код: Выделить всё

ls -1 | random -l
zik писал(а):3) А как бы предложили сделать ?

Код: Выделить всё

zg# mount -t procfs proc /proc
zg# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad4s1a    496M    145M    311M    32%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad4s1d    4.8G    562M    3.9G    12%    /root
/dev/ad4s1h    496M    432M     24M    95%    /tmp
/dev/ad4s1e     24G     15G    7.1G    68%    /usr
/dev/ad4s1f     24G    3.3G     19G    15%    /usr/ports
/dev/ad4s1g    496M    281M    175M    62%    /var
/dev/ad6s1c    144G     20G    113G    15%    /backup
procfs         4.0K    4.0K      0B   100%    /proc
zg# ls /proc/
0       1010    16      18302   24      31      39      46      666     9
1       1011    17      19      25      32      4       47      684     964
10      1012    176     19617   26      33      40      472     687     curproc
1005    11      18      2       27      34      41      48      7
1006    12      18292   20      28      35      42      5       736
1007    13      18295   21      29      36      43      538     8
1008    14      18297   22      3       37      44      6       810
1009    15      18301   23      30      38      45      662     817
zg#
и сравнивать два списка ps и ls /proc
zik писал(а):Мне кажетья через крон так нельзя сделать
ман надо читать, когда кажется -)))

Код: Выделить всё

     The format of a cron command is very much the V7 standard, with a number
     of upward-compatible extensions.  Each line has five time and date
     fields, followed by a user name (with optional ``:<group>'' and
     ``/<login-class>'' suffixes) if this is the system crontab file, followed
     by a command.  Commands are executed by cron(8) when the minute, hour,
     and month of year fields match the current time, and when at least one of
     the two day fields (day of month, or day of week) matches the current
     time (see ``Note'' below).  cron(8) examines cron entries once every
     minute.  The time and date fields are:

           field         allowed values
           -----         --------------
           minute        0-59
           hour          0-23
           day of month  1-31
           month         1-12 (or names, see below)
           day of week   0-7 (0 or 7 is Sun, or use names)
...

EXAMPLE CRON FILE
     # use /bin/sh to run commands, overriding the default set by cron
     SHELL=/bin/sh
     # mail any output to `paul', no matter whose crontab this is
     MAILTO=paul
     #
     # run five minutes after midnight, every day
     5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
     # run at 2:15pm on the first of every month -- output mailed to paul
     15 14 1 * *     $HOME/bin/monthly
     # run at 10 pm on weekdays, annoy Joe
     0 22 * * 1-5    mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
     23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday"
     5 4 * * sun     echo "run at 5 after 4 every sunday"

Аватара пользователя
zik
мл. сержант
Сообщения: 134
Зарегистрирован: 2007-05-24 21:14:01
Откуда: Одесса
Контактная информация:

Re: Помогите советом

Непрочитанное сообщение zik » 2009-02-09 20:55:25

Код: Выделить всё

ls -1 | random -l
Простите, а где Вы наши такую команду ? Потому что во Фре, что в Линуксе я ненашёл такого или альтернатив ...

Я перечитывал ман страницу крона несколько раз и перерыл весь инет ... =) Но что-то я нигде не нашёл примера, чтоб задание исполнялось второй вторник каждого месяца
( each second tuesday of each month ) или я неправильно перевёл и надо просто через вторник ?!?!

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Помогите советом

Непрочитанное сообщение zg » 2009-02-09 21:37:31

zik писал(а):Простите, а где Вы наши такую команду ?

Код: Выделить всё

zg# which random
/usr/games/random
zg#
понятия не имею откуда она там :cf: у меня работает... -))) идёт по-моему с фортуной.
zik писал(а):Но что-то я нигде не нашёл примера, чтоб задание исполнялось второй вторник каждого месяца
выше я привёл кусок man 5 crontab, но ввиду того, что читать вы не любите, приведу нужный пример

Код: Выделить всё

5 4 * * sun     echo "run at 5 after 4 every sunday"

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Помогите советом

Непрочитанное сообщение zg » 2009-02-09 21:42:11

zik писал(а):( each second tuesday of each month ) или я неправильно перевёл и надо просто через вторник ?!?!
каждый второй вторник каждого месяца

и даже ещё кусочек мана приведу

Код: Выделить всё

     Step values can be used in conjunction with ranges.  Following a range
     with ``/<number>'' specifies skips of the number's value through the
     range.  For example, ``0-23/2'' can be used in the hours field to specify
     command execution every other hour (the alternative in the V7 standard is
     ``0,2,4,6,8,10,12,14,16,18,20,22'').  Steps are also permitted after an
     asterisk, so if you want to say ``every two hours'', just use ``*/2''.