LINUX.ORG.RU
ФорумAdmin

задания по bash


1

1

Доброго времени суток,

тут занялся изучать баш. Базовые понятия и знания есть. Но, однако, лучше изучать, если есть какие-нибудь задачи. Себе задачи придумать не могу... все, что приходит в голову оказывается сложным в реализации (для меня, ибо еще нуб). Может кто написать простенькие задачи пожалуйста, или если что-то подобное есть, от скинуть ссыль?! Спасибо!!


пакетный менеджер
ирк клиент
бекапилка

Spoofing ★★★★★
()

Посмотри Advanced Bash-Scripting Guide (в частности, примеры из него), если еще не.

dexpl ★★★★★
()

вот хде ты был вчера?
я бы тебе дал задание задание слабадь скрипт для компеляния ядра в раме, при этом чтобы временные файлы остались в раме и там и сдохли, а на винт упало только действительно нужное...
но я уже это сделал (
а, вот - слабай скрипт, который будучи натравленным на сорсы чего либо, покажет мне зависимости этих сорсов, возможные опции сборки и зависимости которые зависят от каждой из опций.
многие *билдо/спеко-писатели скажут спасибо, особенно если будет поддержка хотя бы основных систем сборок.

megabaks ★★★★
()

bash ужасен. Его хорошо пользовать, когда нужна сильная интеграция с системой (FS, accounting, apps).
А так, лучше применять тот же Perl.

markevichus ★★★
()

тут занялся изучать баш. Базовые понятия и знания есть. Но, однако, лучше изучать, если есть какие-нибудь задачи. Себе задачи придумать не могу... все, что приходит в голову оказывается сложным в реализации (для меня, ибо еще нуб). Может кто написать простенькие задачи пожалуйста, или если что-то подобное есть, от скинуть ссыль?! Спасибо!!

ABS скачай.

drBatty ★★
()

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

написал, вобщем, утилитку: вставляете функции между этапами выполнения вашего скрипта, и она показывает, сколько времени было потрачено на этот этап. В конце - время выполнения скрипта. Всё красиво оформлено, в функциях. Кому интересно - выложу на гитхаб

leader32
()

Забей, по ходу жизни будут задачи, вот их и решай.

anonymous
()

напиши такой скрипт, дается адрес сети в формате 192.168.1.1 255.255.255.128 или 192.168.1.1 25

проверь валидность адресов и масок

найди живые хосты в сети

и запусти iperf в качестве клиента на живые узлы

anonymous
()

то есть адрес сети конечно дается в таком формате

192.168.1.0 или 192.168.1.128

то, что привел выше, это адреса хостов разумеется

вот это тоже проверь, чтобы из адреса хоста выделить сеть

и выдать предупреждение, что пользователь ввел не адрес сети, а адрес хоста, а адрес сети будет такой-то, дня на три хватит точно, однако ничего сверхестественного в таком скрипте нет и все довольно просто реализуемо

anonymous
()

еще одно:

напиши скрипт, считывающий адреса хостов из файла, в котором # как положено начало коментария, если за адресом хоста стоит # то скрипт отбрасывает коментарий и нормально отрабатывает адрес.

далее делает проверку на валидность адресов

далее мониторит доступность адресов и если с какого-то адреса не вернулись 5 подряд пингов, каждый с таймавутом в 1 сек (таймауты в самом ping можно выставлять) то шлет на твою почту письмо с уведомлением, что у хоста ${address} поменялось состояние с UP на DOWN

далее, когда подря 5 пингов вернул хост, шли себе письмо, что хост ${address} поменял состояние с DOWN на UP

тоже ничего сложного, строк в 100 можно уместить вполне.

задачи немного надуманные, но все же вполне себе «задачи администрирования»

если справишься, можешь даже сюда запастить, укажу на какие-нибудь ошибки.

anonymous
()

в качестве сендера писем настрой ssmtp + mutt, с почтой заодно поэкспериментируешь, тоже полезно, в общем на неделю занятий хватит, а там может что-то реальное появится

anonymous
()

и разбивай все на функции, одна функция - одна задача

anonymous
()

ABS тоже прочитай, но примеры не выполняй и вообще прочитай вскользь, просто чтобы понимать с помощью каких утилит что делать, например что может сделать sed или awk, а что можно решить более простыми средствами, например cut или grep

anonymous
()

Я в своё время писал словарь-тренер для 3-х языков с возможностью добавлять новые слова в базу, со статистикой, все дела. До сих пор испытываю к этому говнокоду сильную эмоциональную привязанность.

float
()

что за вопрос? Биллинг свой напиши. Ты админ или где?

anonymous
()
Ответ на: комментарий от markevichus

Да нет, как раз шел помочь человеку с bash'ем. Но тут увидел по пути старенький деревянный сарайчик покрытый мхом и свисающими лианами. Думаю, дай уберу паутину и загляну в пыльную щель, а там Вы сидите и программируете на perl'е.

dbzer0
()

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

У меня есть список.. как считывать его построчно и вывести - знаю, это не проблема.. а вот как сделать так, чтобы каждой строке была присвоена переменная? Например на первую строку line1 line2 .. linen, при этом переменная должна создоватся циклом... тоесть цикл считывает строчки и каждой строчке присваивает по переменной... не как не могу додуматся, как такое реализовать..

djemNa
() автор топика
Ответ на: комментарий от sDvig

Спасибо!!

У меня еще будет вопрос не по теме.

filecat=$(while read ficat
do
echo $ficat off 
done < $tempfile2)

dialog --title "Список файлов" --clear --checklist "Выберите файл/каталог" 20 80 5 $filecat

У меня с файла построчно списываются значения. они хранятся в $ficat. Потом идет подстановка значение, которые требуются для --ckecklist в dialog`е и это все сохраняется в $filecat, эта переменная вставляется вместо «tag» «item» «status».. но вот незадача.. все работает прекрасно, то того времени, пока файл не имеется пробела.. потом начинает все отображаться не правильно.. ломал вчера пол дня голову, так и не нашел выход...

djemNa
() автор топика
Ответ на: комментарий от djemNa

Все, проблема решена. тут небольшая проблема в баше, поэтому очень «трудно» реализовать перенос списка с файла в --ckecklist в dialog`е. Но вот как можно это реализовать.. для тех, кому понадобится в будущем.

#!/bin/bash

pkglist=""
n=1
for pkg in $(cat file.txt)
do
        pkglist="$pkglist $pkg $n off"
        n=$[n+1]
done

echo $pkglist

choices=`/usr/bin/dialog --stdout --checklist 'Choose item:' 80 40 20 $pkglist`

if [ $? -eq 0 ]
then
        for choice in $choices
        do
                echo "You chose: $choice"
        done
else
        echo cancel selected
fi
djemNa
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.