Страница 1 из 1
Помогите советом
Добавлено: 2009-02-09 14:35:58
zik
Здравствуйте все

У меня вот такая задачка, надо срочно написать три простейших скрипта, причём до вечера ... Проблема в том что последний раз писал скрипты 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.
Всем спасибо.
Re: Помочите советом
Добавлено: 2009-02-09 14:44:58
hizel
элементарно, напишите как вы бы сделали в консоли, а потом потом суйте в скрипт с минимальными изменениями
(фот нашёл вариант ответа без ругани и сорказма

, думал минут 10-ть)
Re: Помочите советом
Добавлено: 2009-02-09 14:51:48
zik
Про что речь ?.. Я не понял.
Re: Помочите советом
Добавлено: 2009-02-09 14:57:03
zg
zik писал(а):* Produce directory listing sorted randomly.
ls -1f
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
Re: Помогите советом
Добавлено: 2009-02-09 20:04:00
zik
Спасибо, 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
Но такая связка, даже если заработает то запустит только через вторник, а не каждый второй вторник.
Re: Помогите советом
Добавлено: 2009-02-09 20:33:52
zg
zik писал(а):1) Хм ... ls -1f не сортирует поросто, но оно ж не вывод рандомно, просто я тоже так сначала хотел сделать.
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"
Re: Помогите советом
Добавлено: 2009-02-09 20:55:25
zik
Простите, а где Вы наши такую команду ? Потому что во Фре, что в Линуксе я ненашёл такого или альтернатив ...
Я перечитывал ман страницу крона несколько раз и перерыл весь инет ...

Но что-то я нигде не нашёл примера, чтоб задание исполнялось второй вторник каждого месяца
( each second tuesday of each month ) или я неправильно перевёл и надо просто через вторник ?!?!
Re: Помогите советом
Добавлено: 2009-02-09 21:37:31
zg
zik писал(а):Простите, а где Вы наши такую команду ?
понятия не имею откуда она там

у меня работает... -))) идёт по-моему с фортуной.
zik писал(а):Но что-то я нигде не нашёл примера, чтоб задание исполнялось второй вторник каждого месяца
выше я привёл кусок
man 5 crontab, но ввиду того, что читать вы не любите, приведу нужный пример
Код: Выделить всё
5 4 * * sun echo "run at 5 after 4 every sunday"
Re: Помогите советом
Добавлено: 2009-02-09 21:42:11
zg
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''.