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

Изображение пользователя slavaz.
Опубликовано:
Раздел:

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


Изображение пользователя slavaz.

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

Автор: tigro

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

--
MSIU Team

Изображение пользователя slavaz.

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

Автор: slavaz

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

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

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

Изображение пользователя slavaz.

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

Автор: tolstik

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

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

Изображение пользователя slavaz.

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

Автор: 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: Обсуждаем скрипты. #5

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

Изображение пользователя moisha.

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

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


"Азбуку, азбуку учи!" Т. Толстая "Кысь"

Изображение пользователя alex_root.

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

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


640 КБ памяти должно хватать каждому ©

Изображение пользователя slavaz.

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

Цитата:
alex_root пишет: Ближе к народу Слава, ближе!
Ага, понял. Скрипты пугают своим назначением и действиями...
Цитата:
Вот написал бы скрипт устраняющий "фичи" десятки после установки. Чтоб одной коммандой решалась проблема с звуком + выставлялись "нужные" права на kppp + отключались ненужные службы в system-config-services ...
Тэкс. По пунктам. 1) проблема со звуком - я не в курсе, что за она. Есть ли где описание проблемы (и желательно решение)? 2) права на kppp - это чтоб пароль рута при запуске не спрашивало? Если да, то знаю как, сделаю. 3) ненужные службы - это какие? Ситуации могут быть разными. Например, если есть только SCSI-диски, то smartd это ненужная служба.

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

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

Изображение пользователя alex_root.

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

Цитата:
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 Желательно на всех уровнях. Только без удаления самих скриптов запуска служб.


640 КБ памяти должно хватать каждому ©

Изображение пользователя slavaz.

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

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

Изображение пользователя alex_root.

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

Со службами вроде всё сработало, правда я только пару включил до запуска скрипта на проверку.
Со звуком:
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)
---
Ты в скрипт по русски допиши описание, что б кому что не надо, мог просто выкинуть секцию или подправить.


640 КБ памяти должно хватать каждому ©

Изображение пользователя slavaz.

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

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

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

Изображение пользователя alex_root.

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

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


640 КБ памяти должно хватать каждому ©

Изображение пользователя slavaz.

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

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

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

Изображение пользователя DRVTiny.

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

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

#!/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: Обсуждаем скрипты. #16

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

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

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

Изображение пользователя DRVTiny.

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

Ну, я-то, собственно, немножко для другого этот скрипт хочу написать. Мне нужно всего лишь определить местоположение и названия пакетов локального репозитория (на сменных носителях, в различных каталогах локального жёсткого диска), в которых находится тот или иной файл с возможностью использования шаблонных подстановок в его имени (иными словами, мне нужен тот же 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: Обсуждаем скрипты. #18

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

Изображение пользователя DRVTiny.

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

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


Эй, оператор-астроном,
Нет звёзд и звёздных глаз -
Есть плац, пивная, гастроном
И горы из колбас!

Марк Мерман, "Никто кино так не снимал, как Лени Риффеншталь"

Изображение пользователя slavaz.

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

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

Изображение пользователя DRVTiny.

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

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


Эй, оператор-астроном,
Нет звёзд и звёздных глаз -
Есть плац, пивная, гастроном
И горы из колбас!

Марк Мерман, "Никто кино так не снимал, как Лени Риффеншталь"

Изображение пользователя slavaz.

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

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

Изображение пользователя DRVTiny.

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

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


Эй, оператор-астроном,
Нет звёзд и звёздных глаз -
Есть плац, пивная, гастроном
И горы из колбас!

Марк Мерман, "Никто кино так не снимал, как Лени Риффеншталь"

Изображение пользователя slavaz.

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

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

Изображение пользователя ArbyZ.

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

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

Изображение пользователя sergeil.

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

Цитата:
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"
...

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


Админ админу - друг, товарищ и ман...
(c) Almaty

Изображение пользователя sergeil.

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

Цитата:
По русски - проблема похлеще, чем была 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


Админ админу - друг, товарищ и ман...
(c) Almaty

Изображение пользователя slavaz.

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

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

Изображение пользователя sergeil.

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

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

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

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

Улыбка


Админ админу - друг, товарищ и ман...
(c) Almaty