среда, 22 апреля 2009 г.

...

http://contact.meta.ua/users/evgeniya-ryabchenko-1152778/ 66-086-5654

Делаем свой дистрибутив

C помощью Remastersys можно сделать две вещи:

1. Полный бекап своей системы, включая персональные данные,и создать его в виде LiveCD или DVD для последующей инсталляции.
2. Сделать свой дистрибутив на основе Ubuntu для себя или поделиться им с кем-нибудь.


Установка Remastersys в Ubuntu

Добавляем репозиторий в /etc/apt/sources.list

sudo gedit /etc/apt/sources.list

и вносим следующую строчку:

# Remastersys
deb http://www.remastersys.klikit-linux.com/repository remastersys/

Сохраняем файл.

Обновляем source list

sudo apt-get update

Устанавливаем

sudo apt-get install remastersys

Дожидаемся полной инсталляции.

Запуск Remastersys

sudo remastersys


Remastersys команды
sudo remastersys backup|clean|dist [cdfs|iso] [filename.iso]

Remastersys примеры

1) создаем livecd/dvd бекап нашей системы
sudo remastersys backup

2) создаем livecd/dvd бекап и образ диска custom.iso
sudo remastersys backup custom.iso

3) чистим временные файлы remastersys
sudo remastersys clean

4) создаем дистрибутив livecd/dvd из нашей системы
sudo remastersys dist

5) создаем дистрибутив livecd/dvd только из файловой системы
sudo remastersys dist cdfs

6) создаем дистрибутив с именем custom.iso, если cdfs уже сделали
sudo remastersys dist iso custom.iso

Создание ISO образа
sudo remastersys dist

Эта команда создаст образ iso с называнием customdist.iso в каталоге / home / remastersys .
Опция dist позволяет не включить в образ ваши личные папки (например, / home / user).
Возможно в ходе процесса вам придется вставить установочный диск Ubuntu.

процесс создания образа идет примерно так:

[…]
92.16% done, estimate finish Wed DEC 28 15:31:25 2007
93.39% done, estimate finish Wed DEC 28 15:31:25 2007
94.62% done, estimate finish Wed DEC 28 15:31:24 2007
95.85% done, estimate finish Wed DEC 28 15:31:24 2007
97.08% done, estimate finish Wed DEC 28 15:31:25 2007
98.31% done, estimate finish Wed DEC 28 15:31:25 2007
99.54% done, estimate finish Wed DEC 28 15:31:25 2007
Total translation table size: 2048
Total rockridge attributes bytes: 3950
Total directory bytes: 9094
Path table size(bytes): 54
Max brk space used 0
406890 extents written (794 MB)

В каталоге /home/remastersys/ создастся образ customdist.iso, который можно буде записать на болванку.
Если размер образа более 700Мб, то его можно записать на DVD болванку

Чистим

После того как образ протестирован, записан и он больше не нужен выполняем

sudo remastersys clean

удалятся все временные файлы и образ диска в директории /home/remastersys.

Доменное имя на динамический IP адрес

Регестрируемся на сайте типа dyndns
Ставим демона обновления

apt-get install ddclient

Вам нужно будет ввести логин и пароль для сайта dyndns, имя хоста, с которым нужно связывать ip и имя сетевого интерфейса, на котором этот ip назначен. Это будет имя той сетевой карточки, через которую проходит интернет,например eth0 или ppp0.

Советы по Linux

1. Как быстро получить информацию о системе?

Быстро получить информацию о системе можно используя команду procinfo. Если этого недостаточно - смотрите файловую систему /proc.
Например: /proc/interrupts, /proc/cpuinfo...

2. Еще один способ получить полезную информацию о системе

Еще один способ получить полезную информацию о системе - команда vmstat. Она выводит информацию использовании памяти, процессора, областях swap и т.п.
Команда free выдает информацию о памяти и swap.

3. Как получить информацию о ваших загруженных модулях ядра

lsmod - хороший способ получить информацию о ваших загруженных модулях ядра.

4. Нужно посмотреть параметры и возможные опции для модуля ядра Linux?

Воспользуйтесь командой modinfo. Например, Информация о авторе:
modinfo -a модуль
Список возможных параметров: modinfo -p модуль

5. Полезная информация о ядре

Левый или правый CTRL, ALT, или SHIFT + scrollock покажут вам полезную информацию о ядре.

6. Как долго ваша система была запущена?

Чтобы увидеть, как долго ваша система была запущена, наберите uptime.

7. Как посмотреть какие порты открыты?

netstat -a позволит вам увидеть все tcp и udp порты, которые открыты на вашей системе.

8. Нужно узнать какой сокет заняла программа?

lsof -i -U
fuser port_num/tcp
а также:
netstat -pvlA inet

9.Как посмотреть информацию о запущенных процессах?

Обычно используется "ps -aux", и потом "kill <номер процесса>". Так же есть специальные программы - такие, как top, gtop и ktop.

10. Как посмотреть свободное место на диске?

Чтобы посмотреть свободное место на диске, используйте команду df. Так же в KDE есть программа kdf (KDiskFree).

11. Как узнать размер всех директорий в данном каталоге?

Чтобы узнать размер всех директорий в данном каталоге, выполните команду:

find . -maxdepth 1 -type d -print | xargs du -sk | sort -rn

12. Как разбить один большой файл на несколько маленьких?

Чтобы разбить один большой файл на несколько маленьких используйте команду:

split --bytes=SIZE filename

13. Как добавить конфигурации по умолчанию для программ?

Если вы хотите добавить конфигурации по умолчанию для своих программ (которые размещаются в каждой домашней директории), копируйте эти конфигурационные файлы в /etc/skel. Каждый раз, когда вы добавляете нового пользователя, эти файлы будут скопированы в домашние директории пользователей.

14. Как убрать возможность перезагрузки по нажатию клавиш CTRL-ALT-DEL?

Убрать возможность перезагрузки по нажатию клавиш CTRL-ALT-DEL можно закомментировав строку

ca::ctrlaltdel:/sbin/shutdown -t5 -rf now

в файле /etc/inittab.

15. Быстрый метод завершения перезапускаемого(respawning) процесса?

Очень быстрый метод завершения перезапускаемого(respawning) процесса в вашем /etc/inittab - это переключение уровней исполнения. Например, если вы имеете строку:

1:1235:respawn:/usr/sbin/mgetty /dev/ttyS1

переключение на уровень 4 остановит перезапускаемый процесс.

16. Как ограничить потребление ресурсов системы пользователями?

Если вы запустили большую систему с большим количеством пользователей, может быть очень важно ограничить потребление ресурсов системы пользователями. Вы можете контролировать эти ограничения с помощью модуля PAM и файла /etc/pam.d/limits.conf. Большинство современных дистрибутивов используют PAM для аутентификации. Пример ограничений для группы users sample of limits for the users group.

@users hard core 0

@users hard nproc 50

@users hard rss 5000

Это не позволяет создавать файлы core, ограничивает пользователя до 50 процессов и по использованию памяти до 5МБ

17. Как сделать дамп N-консоли?

Команда cat /dev/vcsN сбрасывает дамп N-консоли.

18. Как запретить вход всех пользователей в систему?

Чтобы запретить вход всех пользователей в систему (кроме root) без перезагрузки создайте файл /etc/nologin. Содержимое этого файла будет отображаться когда пользователь попытается войти в систему.

19. Ограничение на выполнение команды su

Чтобы разрешить определенным пользователям делать su, что лучше чем всем по умолчанию, редактируйте /etc/login.defs и установите строку SU_WHEEL_ONLY в yes. Затем вам нужно добавить пользователей, которым нужно делать su в группу 0, что делается редактированием файла /etc/groups.

20. Как примонтировать директорию из одной части файловой системы в другую?

В linux 2.4.x ядрах:

mount --bind какую_директорию_монтировать куда_монтировать

21. Как установить точное время?

Отличный способ установить на машине точное время - использовать каманду ntpdate:

ntpdate

Конечно, нужно иметь установленный пакет ntp и возможность соединения с сервером NTP. Вместо лучше использовать ip-адрес, чтобы избежать преобразования доменного имени в ip-адрес.

22. Как установить время CMOS?

Чтобы установить время CMOS системному используйте hwclock --systohc, а hwclock --hctosys - установит системное время, как время CMOS clock.

23. Как быстро скомпилировать ядро

Самый простой способ скомпилировать ядро это выполнить все команды make на одной строке набрав:

make dep clean bzImage modules modules_install

Если вы просто пропатчили свое ядро тогда просто сделайте:

make oldconfig dep clean bzImage modules modules_install.

24. System.map

Вешь, о которой иногда забывают упомянуть, когда вы обновляете свое ядро - это файл System.map (обычно располагающийся в каталоге /boot), который не соответствует новому ядру. После перезагрузки вы увидите сообщения о некорректной версии ядра. После построения нового ядра не забудьте скопировать новый файл System.map из каталога /usr/src/linux в загрузочный каталог вашей системы (/boot).

25. Как увидеть сообщения выдаваемы ядром?

Увидеть сообщения, выдаваемые ядром на экран при загрузке системы можно набрав команду dmesg.

26. Как посмотреть вывод команды и одновременно записать его в файл?

Посмотреть вывод команды и одновременно записать его в файл можно с помощью команды:

tee $ls | tee logfile.txt

27. Как запретить хранитель экрана в текстовом режиме?

Запретить хранитель экрана в текстовом режиме - напечатайте setterm -blank 0.

28.Средство для более быстрого поиска файлов, чем find

Средство для более быстрого поиска файлов, чем find - команда locate, которая использует базу данных для поиска. Для обновления этой базы часто используется cron. Или вручную - updatedb.

29. Список всех исполняемых файлов в системе, которые присутствуют в вашем $PATH?

Нажмите TAB + scroll-lock или еще проще - два нажатия на клавишу TAB. Результат один и тот же.

30. Как отключить сигнал "beep" в течение автоматического завершения командной строки?

Добавьте либо в ~/.inputrc или в /etc/inputrc для визуального звонка:

set bell-style visible

совершенно без сигнала:

set bell-style none

31. Как послать данные на желаемый терминал?

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

tail -f /var/log/messages > /dev/tty12

Для посылки любых сообщений на tty12.

32. Циклическое переключение через все доступные консоли.

Многие клавиатурные раскладки позволяют циклическое переключение через все доступные консоли используя Alt-RightArrow и Alt-LeftArrow.

33. Как выполнить родную команду системы, если используются алиасы?

Часто используете альясы shell (например, прописанные в ~/.bashrc), но иногда необходимо выполнить родную команду системы? Добавьте обратный слэш перед командой, это игнорирует псевдоним shell.

34. Как найти все файлы в каталоге, которые содержат строку?

Найти все файлы в каталоге, которые содержат строку:

find . -type f -print | xargs grep -li "search string"

35. Как сделать чтобы программа ожидала нажатия какой-либо клавиши пользователем?

При написании скриптов shell часто возникает необходимость того, чтобы в процессе выполнения программа ожидала нажатия какой-либо клавиши пользователем. Это можно сделать таким способом:

stty raw; dd if=$(tty) of=/dev/null bs=1 count=1; stty -raw

36.Как перенаправить стандартный вывод и поток ошибок в один и тот же файл?

Чтобы перенаправить стандартный вывод и поток ошибок в один и тот же файл, используйте `&>'.

37. Как сохрать man-страницы в текстовый файл?

Самый простой способ сохранения man-страницы в текстовый файл - " man name | col -b > name.txt".

38. Все символы в консоли стали нечитаемыми

Если все символы в консоли стали нечитаемыми, наберите:

"echo -ne "\017","stty sane" или просто "reset".

39. Как перевести имена файлов в директории в нижний регистр?

Самый простой способ перевода всех имен файлов из директории в нижний регистр:

"for x in *; do mv $x `echo $x | tr [A-Z] [a-z]`; done".

40. Как быстро переименовать файл?

Чтобы быстро переименовать файл, используйте команду:

"mv /usr/local/bin/{старое_имя,новое_имя}".

41. Как удалить всю директорию без лишних запросов?

Чтобы удалить сразу всю директорию без лишних запросов, используйте:

rm -rf имя_директории

42. Как создать сразу несколько директорий?

Создание сразу нескольких директорий - "mkdir -p dir1/dir2/dir3".

43. Как правильно выключить компьютер?

Правильное выключение компьютера - команда "shutdown -h now".

Перезагрузка - "shutdown -r now" или просто "init 5".

44. Как передать весь вывод одной команды на вход другой команде?

Чтобы передать весь вывод одной команды на вход другой команде, используется символ "|".

Таким образом можно делать сложные конструкции (например, "ls | sort -r | less").

45. Как следить за постоянно изменяющимися файлами?

Чтобы следить за постоянно изменяющимися файлами (например, за системными логами), используйте команду tail.

Пример: "tail -15 /var/log/syslog" - постоянно показывает последние 15 строк.

46. Как следить за списком файлов в реальном времени?

Слежение за списком файлов в реальном времени - "watch -n 0 ls -l".

Команда watch осуществляет периодический запуск других команд.

47. Как искать текст в файлах?

Для поиска текста в файлах используется команда - "grep "ваш текст" /where/to/search".

Если при поиске не нужно учитывать регистр - "grep -i "ваш текст" /where/to/search"

48. Как заменить одно слово на другое во многих файлах?

Для замены одного слова на другое сразу же во многих файлах можно использовать этот скрипт

perl -pi -e 's/oneword/anotherword/g' *.
Если нужно сделать это же с одним файлом, поставьте его имя вместо " * ".

49. Как перейти из графического режима в текстовую консоль?

Чтобы перейти из графического режима в текстовую консоль, нажмите Ctrl+Alt+F1. (Ctrl+Alt+F2 - на вторую консоль, Ctrl+Alt+F3 - на третью консоль, etc). Для того, чтобы вернуться обратно в Иксы, обычно используется комбинация клавиш Alt+F7.

50. Как увидеть под Linux другой подключенный жесткий диск?

Чтобы увидеть под Linux другой подключенный жесткий диск, надо примонтировать (командой mount) разделы, которые на новом винчестере есть. Для этого надо определить, каким винчестер стоит: hdb, hdc или hdd. Для этого нужно всего лишь сообразить, как он подключен: primary slave - это hdb, secondary master - это hdc, secondary slave - это hdd. Теперь надо просмотреть, какие диски на винте есть. Для этого запускаем cfdisk для того винта, который мы определили на предыдущем шаге, например, для hdb: cfdisk /dev/hdb. Глядим, какие разделы есть. Например есть FAT32 (или он еще обозначается как WIN95) диск /dev/hdb1. Мы хотим его подключить скажем к каталогу /mnt/disk. Тогда: mount -t vfat /dev/hdb1 /mnt/disk. Здесь: параметр "-t" указывает тип файловой системы, в нашем случае это vfat, что соответствует fat32.

51. Работа с CD/R и CD/RW.

Стираем так: cdrecord -v blank=fast(или all) dev=<Ваш девайс>.

Образ делаем так: mkisofs -r -J -o <имя_файла_образа.iso> <то_чего_в_образ_загоняем>

Пишем так: cdrecord -v -eject speed=8 dev=<Ваш девайс> file.iso.

Если надо мультисессионный диск, то добавляем -multi.

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

52. Запись CD диска

Команды cdrecord, полезные при записи CDROM:

mkisofs -V "volume_ID" -D -l -L -N -J -R -v -o cdrom.iso директория

cdrecord -dev=0,1,0 -speed=4 -v cdrom.iso

Для подключения IDE накопителя добавить в linux lilo append="hdc=ide-scsi"

( hdc - ваш привод?) и включить в ядре поддержку эмуляции SCSI.

-toc -atip -prcap - выдать полную информацию о накопителе.

-scanbus - определить параметры для -dev (можно /proc/scsi/scsi)

-dummy - запись в режие тестирования (без реального прожигания диска).

-fix - исправить недописавшийся диск.

-eject - после записи вытащить CD

-blank=all очистить CR-RW перед записью.

mkisofs -print-size - расчитать сколько потребуется места для записи директории

53. Как смонтировать образ компак-диска?

Смонтировать образ компакт-диска можно таким образом:

#mkdir /mnt/iso

#mount -t iso9660 -o loop cd-image.iso /mnt/iso

(Разумеется, для операции монтирования нужно иметь права root). Теперь каталог /mnt/iso доступен для чтения содержимого образа компакт-диска.

54. Как узнать метку компакт-диска?

Узнать метку компакт-диска можно так:

alias cdlabel='LABEL=`dd if=/dev/cdrom bs=1 count=32 skip=32808 2>/dev/null` && echo $LABEL'

Удобно использовать альяс в инициализационных скриптах shell.
Советы по “железу”

1. Как получить список устройств на шине PCI?

Получить список устройств на шине PCI можно таким образом:

/sbin/lspci

2. Как включить при загрузке клавиши numlock?

Если вы хотите включить все клавиши numlock при загрузке, добавьте следущее в ваши загрузочные скрипты, например в rc.local:

echo -n "Turning on numlock LEDs: "

for tty in /dev/tty[1-6] /dev/tty1[2]; do

setleds -D +num < $tty &

done

echo "done."

3. Как посмотреть информацию полученную от мыши на стандартный вывод?

Если у вас трудности с мышью, mev -i сбросит информацию полученную от мыши на стандартный вывод.

4. Раздражают сигналы спикера вашего компьютера когда вы ошиблись?

Попробуйте выполнить следующую команду bash:

echo -ne '\033[11;0]'

которая устанавливает продолжительность сигнала для консоли равным 0 секунд. Чтобы сделать это автоматически добавьте эти строки в /etc/profile или ваш~/.profile. Подробную информацию о том, как установить частоту и длительность гудка, читайте в Visual bell mini-Howto.

Юмор

- Иду по парку, смотрю 100 баксов лежит! Думаю, ну, повезло, нашла!
Наклоняюсь поднять. Чувствую... нет, зарабатываю!

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

На уроке в школе:
- Дети, знаете ли вы, откуда течёт электричество?
Вовочка:
- Я знаю! Из джунглей.
- Почему ты так считаешь?
- А сегодня утром папа, когда хотел побриться, сказал:
"Опять эти обезьяны отключили электричество!"

VLAN и Linux

Недавно перед автором этих строк встала очередная задача: в офисе компании появилась ещё одна логическая локальная сеть и надо было настроить роутинг между ней и остальными сетями офиса используя имеющийся межсетевой экран на Debian. Изначально предполагалось добавить в сервер ещё одну сетевую карту, поднять на ней IP из новой сети и настраивать роутинг так же, как и для других сетей. Однако после снятия с сервера крышки выяснилось что в нём есть только два PCI-слота и оба уже заняты.

Решение пришло в виде гигабитной сетевой карты с поддержкой транков:) Было решено перевести одну из сетевых карточек из акцессного режима в транковый, поскольку изначально на коммутаторе каждая логическая сеть находилась в отдельном влане. Так же в будущем это решение позволит гораздо проще добавлять новые логические сети а значит решение становится более масштабируемым.

Самым сложным во всём этом оказалось переключение карточки в транковый режим и настройка нужных VLAN'ов. Однако вдумчивое чтение документации показало что это всё не так уж и сложно, что и будет показано ниже. Будем предполагать что у нас сервер под Debian или одном из его клонов. Транк нужно настроить на интерфейсе eth3 и нас интересуют два VLAN'а: 31 (в нём находится сеть 192.168.31.0/24) и 50 (сеть 192.168.50.0/24).

Для начала установим пакет vlan, который кроме всего прочего содержит утилиту vconfig:

apt-get install vlan

Затем загасим интерфейс eth3 (если вы подключаетесь к серверу через него - придётся вам дойти до сервера и поработать локально:)):

ifdown eth3

После этого закоментируем все настройки для eth3 в /etc/network/interfaces и добавим настройки наших VLAN'ов:

#auto eth3
#iface eth3 inet static
# address 192.168.50.253
# netmask 255.255.255.0
# network 192.168.50.0
# broadcast 192.168.50.255

auto vlan50
iface vlan50 inet static
address 192.168.50.253
netmask 255.255.255.0
network 192.168.50.0
broadcast 192.168.50.255
mtu 1500
vlan_raw_device eth3

auto vlan31
iface vlan31 inet static
address 192.168.31.100
netmask 255.255.255.0
network 192.168.31.0
broadcast 192.168.31.255
mtu 1500
vlan_raw_device eth3

Теперь нужно поднять новые интерфейсы:

ifup vlan31
ifup vlan50

Проверить поднялся ли VLAN можно командой:

ifconfig vlan31

Вывод должен выглядеть примерно вот так:

vlan31 Link encap:Ethernet HWaddr 00:07:E9:0B:28:79
inet addr:192.168.31.100 Bcast:192.168.31.255 Mask:255.255.255.0
inet6 addr: fe80::207:e9ff:fe0b:2879/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9431 errors:0 dropped:0 overruns:0 frame:0
TX packets:34429 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:512370 (500.3 KB) TX bytes:1556858 (1.4 MB)

На самом деле в /etc/network/interafces VLAN'ы настраиваются как обычные сетевые интерфейсы, только имеющие имя vlan<номер_VLAN> и обязательный параметр vlan_raw_device, указывающий на физический интерфейс. Во всём остальном работа с VLAN'ами ничем не отличается от работы с обычными сетевыми интерфейсами. Потому настройку роутинга между ними я оставлю читателю.

Разное

http://blender-empire.ru/ - Журнал по блендеру 3Д
Написание скриптов с графическим интерфейсом GTK - Zenity http://library.gnome.org/users/zenity/stable/zenity-progress-options.html.ru
http://xgu.ru/wiki/DNS-tunneling
http://ubuntologia.ru/
http://wiki.winehq.org/winetricks
http://proxya.ru/
http://simadmin.ru/
http://www.zabbix.com/screenshots.php
http://www.cacti.net/spine_install.php
http://pppstatus.sourceforge.net/graphic/screenshots.html
http://www.f0x.ru/2008/09/usb-ubuntu.html
http://fishki.net/comment.php?id=46562
http://blog.cyphermox.net/2008/10/automatic-mounting-of-samba-shares.html?showComment=1224536280000
http://ulmencave.blogspot.com/2007/05/apache2-ssl-php5-mysql5-ubuntu-feisty.html
http://spo.cnews.ru/news/top/index.shtml?2009/03/11/340321
http://www.itoday.ru/6988.html
http://www.itoday.ru/12920.html