2 года назад я устраивался на работу сотрудником технической поддержки в компанию по предоставлению хостинга (до сих пор удивляюсь, как меня туда занесло). Как оказалось, я был первым сотрудником, которого пригласили в тех.поддержку после переезда в новый офис. Кроме меня там был всего один сотрудник, который стал старшим, соответственно.
Так вот, требовалось мне пройти тестовые задания. На подготовку выделялось пару дней и темы задач. Потом на весь день я пришёл в офис и писал… Написал хорошо. Горд был собой :) Потом этот тест отменили… А потом вообще стали набирать чуть ли не всех подряд… Но я не о том! Нашёл, вот, решения своих задач. Хотя, может и не своих :) Потом взяли ещё Даниила. Отличный парень! Есть вероятность, что это его решения у меня сохранились. Делюсь!
Надо было выводить на экран числа по порядку…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/bash # задаём интервал между выводами числа (1 секунда) INTERVAL=1 # присваиваем переменной ch первоначальное значение ch=1 # запускаем бесконечный цикл while true do # наша задержка перед выводом sleep $INTERVAL # вывод значение echo $ch # увеличить предыдущее значение переменной на 1 ch=`expr $ch + 1` done |
Создать файлы с md5 файлов-решений задач.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php // создаём массив $filelist=array("chislo.sh","zapros.sh","stat.sh","md5.php"); // идем по всему массиву for ($i=0;$i<count($filelist);$i++) { // открываем файл с именем "имя файла.md5". если файл не создан - создаём $f=fopen($filelist[$i].".md5","w"); // записываем md5-хэш в файл "имя файла.md5" fwrite($f,md5_file($filelist[$i])); // закрываем файл fclose($f); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#!/bin/bash i=1 c=60 kolvoarg="$#" namebd="$1" param="$2" err="необходимые параметры: имя базы. Доп. параметр --stat - выводит статистику"; # если введено не 2 аргумента - выводим сообщение об ошибке if [ $kolvoarg -ne 1 && $kolvoarg -ne 2] then echo "$err" exit fi # цикл от 1 до 60 while [ "$i" -ne "$c" ] do # заносим дату в перемнную DATE=`/bin/date '+%d%m%Y%H%M%S'` # заносим объём свободной памяти в переменную SIZE=`df /home -k | tail -n1 | awk '{print $2;}'` # заносим кол-во процессов в перемнную PR=`pgrep sshd | wc -l` # добавляем данные в таблицу echo "INSERT INTO footable VALUES($SIZE, $PR, $DATE);" | sqlite3 $namebd #echo 'select * from footable; ' | sqlite3 $namebd # задержка в минуту sleep 1m i=`expr $i + 1` done |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#!/bin/bash # для количества аргументов kolvoarg="$#" # для имени файла fname="$1" # для часа hours="$2" # текст, выводимый при ошибке err="необходимые параметры: имя файла час(0-23) (пример: zapros.sh access_log 23)"; # если введено не 2 аргумента - выводим сообщение об ошибке if [ $kolvoarg -ne 2 ] then echo "$err" exit fi # если час больше 23 или меньше нуля - выводим сообщение об ошибке if [ $hours -gt 23 ]&& [$hours -lt 0] then echo "$err" exit fi # проверка существования файла if [ -f $fname ] then # ведётся поиск год:час:минуты:секунды Get(и что угодно за ней) код не 200 # ибо 200 - успешный запрос. Остальные - нет. egrep '[0-9]{4}:['.$hours.']{2}:[0-9]{2}:[0-9]{2}.+"GET[^"]+" [^200]' "$fname" else echo "нет такого файла" exit fi |
Для отправки комментария вам необходимо авторизоваться.