Обсуждаем скрипты.

Аватар пользователя slavaz

Здесь обсуждаем скрипты, их назначение и полезность.

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

Автор: tigro

Вообще говоря, когда сами ядра собираем, то без initrd можно обойтись.

--
MSIU Team

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

Автор: slavaz

tigro, можно. Но эти скрипты для тех, кто ещё новичёк в Linux'е, а при установке дистриба или нового ядра возникли проблемы со SCSI или SATA. С этими скриптами намного меньше объяснять последовательности действий по вставке нужных драйверов в initrd.

P.S. Попозжа опубликую скрипты для 2.6.* ядер

P.P.S. ...И удалю наши левые посты.
Может, параллельную тему создать? "Обсуждение скриптов"...

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

Автор: tolstik

Цитата:
С этими скриптами намного меньше объяснять последовательности действий по вставке нужных драйверов в initrd

поддерживаю. Все, что автоматизирует работу и уменьшает рутинную компоненту, только на пользу.
Может, возмешься Webmin расписать? В отдельной статье. Хотя так и так все ясно, но для начинающих действительно не помешает, а то часто задают один и те же вопросы типа: "Поставил, а как теперь его запустить?" Катается от смеха

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

Автор: slavaz
Ну по вебмину вряд ли статья получится. Там всё коротко:
1) поставил
2) chkconfig --level 345 webmin on
3) service webmin start
4) в браузере htp://a.b.c.d:10000; где a.b.c.d - IP-адрес сервера

Вот и вся статья

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

Уважаемые участники форума и гости! Я, конечно понимаю, что скрипты, опубликованные мною, никому не нужны (Нажатий=0), но неужели у Вас нет интересных наработок и решений? Делитесь, не жмотьтесь.

Аватар пользователя moisha

Re: Обсуждаем скрипты.

ну, это вы зря так серьезно. Просто у меня пока не пришло время для Ваших скриптов - зелен пока и не все понимаю. А сам ничего предложить, к сожалению, не могу.

Аватар пользователя alex_root

Re: Обсуждаем скрипты.

Ближе к народу Слава, ближе! Вот написал бы скрипт устраняющий "фичи" десятки после установки. Чтоб одной коммандой решалась проблема с звуком + выставлялись "нужные" права на kppp + отключались ненужные службы в system-config-services ...
Вот тогда и расходились скрипты как горячие пирожки Улыбка

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

Цитата:
alex_root пишет:
Ближе к народу Слава, ближе!

Ага, понял. Скрипты пугают своим назначением и действиями...

Цитата:
Вот написал бы скрипт устраняющий "фичи" десятки после установки. Чтоб одной коммандой решалась проблема с звуком + выставлялись "нужные" права на kppp + отключались ненужные службы в system-config-services ...

Тэкс. По пунктам.
1) проблема со звуком - я не в курсе, что за она. Есть ли где описание проблемы (и желательно решение)?
2) права на kppp - это чтоб пароль рута при запуске не спрашивало? Если да, то знаю как, сделаю.
3) ненужные службы - это какие? Ситуации могут быть разными. Например, если есть только SCSI-диски, то smartd это ненужная служба.

Короче, давайте задания - скрипты напишу.

Цитата:
Вот тогда и расходились скрипты как горячие пирожки Улыбка

Ну прям уж...

Аватар пользователя alex_root

Re: Обсуждаем скрипты.

Цитата:
1) проблема со звуком - я не в курсе, что за она. Есть ли где описание проблемы (и желательно решение)?

Со звуком страдания тут: http://new.community.asplinux.ru/forum/1/47714/47759/#R47759

Цитата:
3) ненужные службы - это какие? Ситуации могут быть разными. Например, если есть только SCSI-диски, то smartd это ненужная служба.

Что то типа: apmd, cpuspeed, cups, cups-config-daemon, hpoj, iptables, irqbalance, isdn, mDNSResponder, nifd, mdmonitor, messagebus, pcmcia , readahead, readahead-early, rhnsd, rpcgssd, rpcidmapd, rpcsvcgssd, sendmail
Желательно на всех уровнях. Только без удаления самих скриптов запуска служб.

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

Всё, скрипт готов.

Аватар пользователя alex_root

Re: Обсуждаем скрипты.

Со службами вроде всё сработало, правда я только пару включил до запуска скрипта на проверку.
Со звуком:
amixer: Unable to find simple control 'Headphone',0
Но тут видно дело не в скрипте. Я например артс_д убиваю - и всё работает.
~~~~~~~~~~~~~~~~
Может ещё добавить в скрипт настройку GRUB Уменьшить время загрузки.
/boot/grub/grub.conf "timeout 30" по дефолту. Заменить на "timeout 5".
Содержание конфига, если у тебя не GRUB:
---
default 0
splashimage=/boot/grub/splash.xpm.gz ;;тёлок сисястых фставить нельзя, залилимитировано фсё ;;
timeout 30

title ASPLinux-2.6.9
kernel /boot/vmlinuz-2.6.9-1.667asp root=/dev/hda5 rhgb
initrd /boot/initrd-2.6.9-1.667asp.img
boot

root (hd0,4)
setup (hd0)
---
Ты в скрипт по русски допиши описание, что б кому что не надо, мог просто выкинуть секцию или подправить.

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

Цитата:
Может ещё добавить в скрипт настройку GRUB Уменьшить время загрузки.

Добавил для grub, aspldr, lilo. Как говорит мой директор "чем гибче программа - тем больше срок её жизни... правда и глюков больше..."
Обновил скрипт, короче. Можно смотреть.

Цитата:
Ты в скрипт по русски допиши описание, что б кому что не надо, мог просто выкинуть секцию или подправить.

По русски - проблема похлеще, чем была cp866<->cp1251 при появлении винды. Сейчас в АспЛинуксе три кодировки: "родная" koi8-r, привитая ASP Team cp1251 и правильная кодировка от Redhat - UTF8. У меня koi8-r. Делать три скрипта или писать по три строки комментариев - что-то не хочется...

Аватар пользователя alex_root

Re: Обсуждаем скрипты.

Попробовал. С Грубом всё ОК
Что б ещё такого тебе заказать? Может что то из безопасности? В /etc/hosts.deny дописать ALL : ALL и в /etc/ssh/sshd_config #PermitRootLogin yes на no ? Может что сам порекомендуешь?

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

Не, безопасность лучше не трогать.Закручивание гаек до упора приведёт к шквалу вопросов в последствии - а почему нельзя соединиться, почему рута не пускает и т.д....

А что посоветовать... а чёрт его знает. Если я и ставлю дистр, то потом все настройки делаю походя, по привычке, практически не обращая внимания (типа, в конфиге апача DefaultCharset закомментарить, postgresql'у побольше буферов выделить и т.д.).
Вот прямо сейчас навскидку и не вспомню всего. Да и скрипт писать на все случаи жизни тоже трудновато - "тонкая" настройка идёт только ручками.
Короче, скрипт будет исправлять наиболее распространённые вопросы, остальное - за очень отдельное пиво

Аватар пользователя DRVTiny

Re: Обсуждаем скрипты.

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

#!/bin/bash
my_name=`basename $0`
doUsage()
{
 echo 'Usage: '$my_name' [rpm_db_file]'
 echo 'Where rpm_db_file is file name of created rpm packets content database'
}
[ $# -gt 1 ] && (doUsage; exit 1)
fnSaveList=$1
[ ! -f $fnSaveList ] && touch $fnSaveList
for i in *.rpm; do
 echo 'Package '$i' content:' >> $fnSaveList
 eval rpm -qpl $i | sed -n 's/^\//\t'`eval echo $i | sed -n 's/\.rpm$//p'`' contains \//p' >> $fnSaveList
done
gzip -7 $fnSaveList

Я думаю, совсем нетрудно догадаться, для выполнения каких задач сей скрипт предназначен...
В первую очередь сюда хотелось бы добавить:
1) возможность вывода на standart output, а не в файл
2) регулирование степени компрессии выходного файла
а) желательно при наличии у файла стандартного расширения одного зи типов архивов, сжимать выходной файл соотв. программой, а при отсутствии расширения - давать возможность пользователю с помощью специальной опции определять тип архива
3) создание надстроечных файлов репозитария rpm, объединяющих все создаваемые этим скриптом архивы в единую базу данных.

Возьмётесь? Улыбка Или "чёрный ящик" yum всех устраивает на 100%?

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

Озадачивался я как-то таким вопросом... правда, для своего инсталятора...
Короче, списка файлов недостаточно. Нужно еще
rpm -q --requires -p <пакет>
и
rpm -q --provides -p <пакет>

Затем это хозяйство завернуть в ассоциативную БД (gdbm подходит вполне). Ну и на перле, ибо в баше с ассоциативными массивами работать очень трудно

P.S. Инсталятор так и не сделал - руководство сказало сделать "тупо и сердито" - установка некоторого набора пакетов по rpm -i --force --nodeps ...

Аватар пользователя DRVTiny

Re: Обсуждаем скрипты.

Ну, я-то, собственно, немножко для другого этот скрипт хочу написать. Мне нужно всего лишь определить местоположение и названия пакетов локального репозитория (на сменных носителях, в различных каталогах локального жёсткого диска), в которых находится тот или иной файл с возможностью использования шаблонных подстановок в его имени (иными словами, мне нужен тот же rpmfind.net, только для оффлайн. С зависимостями (среди которых часто попадается откровенная "липа") я всегда предпочитаю бороться вручную).
Пока что для прямого преобразования, реализуемого с помощью этого нехитрого скрипта, "ключом" является нижеследующая загогулина:

#!/bin/bash
file_name=$1; shift
while [ $# -gt 0 ]; do
 ( echo $1 | grep -q \.gz$ && gunzip -c $1 || (echo $1 | grep -q \.bz2 && bzip2 -c -d $1 || cat $1 ) ) | grep $file_name | sed -n -e 's/\ .*//' -e 's/^\t//p' | uniq
 shift
done

Так уж исторически сложилось, что в качестве первого параметра этому скрипту передаётся маска файла, за которой следуют перечисления имён всех списков, полученных при помощи qpl_all скрипта (см. my prv. msg)

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

DRVTiny, давай чётко определим задачу, что нужно получить.
Есть несколько локальных репозитариев (свалок RPM-пакетов), нужно узнать, в каком пакете находится некий файл и в каком репозитарии. Так?

Аватар пользователя DRVTiny

Re: Обсуждаем скрипты.

Абсолютно правильно, именно это я и подразумевал, но сформулировать свою мысль столь удачным образом не сумел Улыбка

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

DRVTiny, пробуй скрипты.

Аватар пользователя DRVTiny

Re: Обсуждаем скрипты.

А где их искать? Не в файлах - это точно, там я уже обстановку изучил досконально и ничего не нашёл Улыбка

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

В соседнем топике "полезные скрипты для сисадмина"
В файлы будут заливаться проверенные и опробованные на 100% скрипты

Аватар пользователя DRVTiny

Re: Обсуждаем скрипты.

Отлично работает. Это как раз то, что мне было нужно. От всей души спасибо! (Родина тебя однозначно не забудет!!!)

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

Да не за что...
Главное - правильно сформулировать задачу. Остальное - дело техники и навыков...

Аватар пользователя ArbyZ

Re: Обсуждаем скрипты.

Парни мож кто скрипт видел что iptables настраивал? Я пользуюсь тока Диалапом

Аватар пользователя sergeil

Re: Обсуждаем скрипты.

Цитата:
ArbyZ писал:
Парни мож кто скрипт видел что iptables настраивал? Я пользуюсь тока Диалапом

// Для начала, учитывая, что у тебя dial-up и за тобой никого нет (через тебя в инет никто не ходит). Напишем скрипт для настройки. Назовем его upFirewall.sh
=== CUT HERE
#! /bin/bash

# Очистим старые правила
service iptables stop

# Я хочу идти со своего хоста куда хочу (куда пустят).
# То есть, я буду открывать (начинать) соединения и поддерживать начатые мной соединения.
iptables -A OUTPUT -m state --state NEW,ESTABLISHED -j ACCEPT

# Я хочу принимать данные только по тем соединениям, которые я сам открыл.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Я знаю, что если я пошлю запрос к узлу, который мне недостижим,
# то придет icmp сообщение о недоступности узла. В моих интересах его принять.
# Но я также знаю, что это не может быть слишком часто.
# Что-бы предотвратить атаку icmp пакетами, я ограничу количество принимаемых
# пакетов 2 пакета в секунду.
iptables -A INPUT -p icmp --icmp-type destination-unreachable -m limit --limit 2/s -j ACCEPT

# Больше ничего не хочу знать.
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP
iptables -A FORWARD -j DROP

# Тепеть сохраним правила, что-бы после перезагрузки не настраивать их заново.
service iptables save
=== CUT HERE

chmod 700 upFirewall.sh
./upFirewall.sh

А также настроить portwrapper. Для этого в файле /etc/hosts.allow
ALL: 127.0.0.1
# здесь ENTER

А также в файле /etc/hosts.deny
ALL: ALL
# здесь ENTER

Думаю, что теперь тебе должно быть относительно спокойно.

//
// Для продолжения ...
//
1. Посмотри здесь. В свое время я стартовал от этих скриптов. http://www.sentry.net/~obsid/IPTables/rc.scripts.dir/current/

2/ В /etc/ppp/* также есть некоторые примеры настройки firewall, но их не следует тебе использовать.
Они написаны под ipchains (устаревший, state-less firewall, присутствует в дистрибутиве). Твой firewall будет реализовыватся более новыми и мощным средствами (iptables). Этот firewall state-full. То есть он умеет запоминать и отслеживать соединения.
Кстати, если ты хочешь использовать режим активного FTP, то тебе понадобится загрузка модуля ядра трассировки ftp.

Смотри /etc/rc.d/init.d/iptables
...
# Default firewall configuration:
IPTABLES_MODULES="ip_conntrack_ftp"
...

Ну, успехов...

Аватар пользователя sergeil

Re: Обсуждаем скрипты.

Цитата:
По русски - проблема похлеще, чем была cp866<->cp1251 при появлении винды. Сейчас в АспЛинуксе три кодировки: "родная" koi8-r, привитая ASP Team cp1251 и правильная кодировка от Redhat - UTF8. У меня koi8-r.

Ну и у меня koi8-r. И какая проблема?
Один файл сообщений написать в исходной кодировковке (в CODEPAGE хоста автора).
Все остальные файлы сообщений под другие кодировки получить через

#! /bin/bash
for CODEPAGE in WINDOWS_1251 UTF8 ;
do
iconv --to-code $CODEPAGE < $source > $source.$CODEPAGE
done

Аватар пользователя slavaz

Re: Обсуждаем скрипты.

и публиковать все три версии одного файла?
Уж лучше только в UTF8 конвертать и публиковать...

Аватар пользователя sergeil

Re: Обсуждаем скрипты.

Цитата:
slavaz писал:
и публиковать все три версии одного файла?
Уж лучше только в UTF8 конвертать и публиковать...

Ну, это как-бы уже не принципиально.
Принципиально то, что множество кирилических кодировок не есть припятствие для создание русскоязычной базы сообщений.

Кстати:
1. Кирилических кодировок больше чем три
2. В UTF8, WINDOWS-1251 есть символы, которые отсутствуют в KOI8-R. Так что, если и создавать базу кирилических сообщений, то их лучше создавать в кодировке, которая без проблем конвертируется во все остальные.

Улыбка

RSS-материал