Блог - Linux, программирование, Я!

linux на сервере → Как удалить миллионы файлов из одной папки

Очередной пост-ответ на статью на хабре. Прочитал статью Необычное переполнение жесткого диска или как удалить миллионы файлов из одной папки и очень удивился. Неужели в стандартном инструментарии Linux нет простых средств для работы с переполненными директориями и необходимо прибегать к столь низкоуровневым способам, как вызов getdents() напрямую.

Для тех, кто не в курсе проблемы, краткое описание: если вы случайно создали в одной директории огромное количество файлов без иерархии - т.е. от 5 млн файлов, лежащих в одной единственной директории, то быстро удалить их не получится. Кроме того, не все утилиты в linux могут это сделать в принципе - либо будут сильно нагружать процессор/HDD, либо займут очень много памяти.

Так что я выделил время, организовал тестовый полигон и попробовал различные средства, как предложенные в комментариях, так и найденные в различных статьях и свои собственные.
Своего рода, расстановка точек над i в вопросе удаления файлов из переполненной директории. (далее...)

linux на десктопе → Плагин L2TP для NetworkManager

UPD: Сейчас поддержкой и разработкой плагина я не занимаюсь, т.к. перестал сам им пользоваться. Но его разработкой продолжили заниматься тут. Где взять новые DEB пакеты я не знаю, возможно их не существует вообще.

TL;DR: теперь подключаться к L2TP VPN можно через NetworkManager.

Допилил сегодня плагин для Network Manager с поддержкой L2TP. Поддерживает VPN через L2TP и, теоретически, L2TP через IPSec.
Я проверял на "beeline домашний интернет" ( http://help.internet.beeline.ru/internet/install/windows7/l2tp) и в общем-то для этого его и взялся дорабатывать. В принципе, можно даже озаглавить статью типа " Настройка beeline l2tp vpn через NetworkManager".

Установка

Можно установить из PPA:
https://launchpad.net/~seriy-pr/+archive/network-manager-l2tp

              sudo apt-add-repository ppa:seriy-pr/network-manager-l2tp
sudo apt-get update
sudo apt-get install network-manager-l2tp-gnome
            

* Если первая команда не сработает, нужно сперва сделать sudo apt-get install python-software-properties
После установки настоятельно рекомендую выполнить

              sudo service xl2tpd stop
sudo update-rc.d xl2tpd disable
            

После этого можно будет создать новое VPN подключение "Layer 2 Tunnelling Protocol (L2TP)" (см. скриншот).
Напомню как:

  1. Кликаем по иконке NM в трее
  2. Выбираем "Изменить соединения"
  3. Открываем вкладку VPN
  4. Жмем "Добавить"
  5. В выпадающем списке выбираем "Layer 2 Tunnelling Protocol (L2TP)" жмем создать
  6. Дальше уже заполняем окно с настройками для нового соединения

Можно сразу попасть на 5-й пункт если запустить в консоли nm-connection-editor --type=vpn --create

Если что-то не работает

Можете пожаловаться мне. Делать это следует так:
Сперва выполняем команды lsb_release -a и uname -a и отправляем мне что они напечатают.
В идеале прикладывайте еще ссылку на инструкцию вашего провайдера по настройке VPN для Windows.
Дальше в зависимости от того какая возникла проблема:

Не устанавливается пакет

Присылайте вывод команды
apt-cache policy network-manager-l2tp
Ну и какую ошибку пишет при установке.

Не получается Добавить новое VPN подключение

Имеется в виду что пакет установился, но при попытке создать и настроить новое VPN подключение возникают проблемы (нет пункта "Layer 2 Tunnelling Protocol (L2TP)" или программа вылетает или не сохраняются настройки).
В консоли запускаете команду
nm-connection-editor --type=vpn --create
И пробуете добавить и настроить новое подключение. Присылайте что напечатает в консоль и опишите саму проблему конечно же.

При попытке подключения происходят ошибки

Открываете 2 консоли, в одной запускаете

              sudo /usr/lib/NetworkManager/nm-l2tp-service --debug
            

в другой

              tail -f -n 0 /var/log/syslog
            

и пробуете подключиться. После того как случится фейл, присылайте что напечатает за это время в обоих терминалах (в выводе первой команды может засветиться ваш пароль - замените его звездочками!).

На компьютере, куда я хочу установить плагин нет интернета.

Есть скрипт на Python, который умеет выкачивать deb пакеты с плагином и всеми зависимостями.
На компьютере с интернетом окрываете эту ссылку https://gist.github.com/3029495, копируете код в файл, называете его, например, l2tp-downloader.py.
Далее, если компьютер с интернетом на Linux, то просто запускаете этот файл в консоли командой python l2tp-downloader.py и отвечаете на вопросы.
Если компьютер под Windows, нужно скачать и установить Python 2.7 с сайта http://python.org/ и с его помощью запустить скрипт.
После того как скрипт отработает, он создаст .tar архив, в котором будут лежать все зависимости и файл README с инструкцией по установке.

Работает ли плагин на KDE?

Плагин состоит из 2-х частей: независимый от интерфейса "бэкенд" и интерфейс для Gnome. Интерфейса под KDE я не делал. Но независимые разработчики недавно выпустили универсальный интерфейс для KDE панели plasma [ 1][ 2]. Проект новый, так что присутствует пока не во всех дистрибутивах, но в 2014 году должен постепенно появиться (запланирован в Ubuntu 14.04, Fedora 20). Пакет в репозиториях называется plasma-nm. Если plasma-nm у вас установлен, всё равно нужно "доставить" бэкенд-часть, например так:

              sudo apt-add-repository ppa:seriy-pr/network-manager-l2tp
sudo apt-get update
sudo apt-get install network-manager-l2tp
            

Т.е. нужно установить пакет network-manager-l2tp (не network-manager-l2tp-gnome!!!).

Альтернативные GUI программы для подключения к L2TP VPN в Linux

Если этот плагин почему то так у вас и не заработал, можете попробовать одну из следующих GUI-программ (к слову, все эти L2TP-GUI, в т.ч. и мой плагин, "внутри себя" используют одни и те же консольные программы: xl2tpd (для L2TP), pppd (для VPN) и openswan (для IPSec), но генерируют к ним немного разные конфиги и запускают их немного по разному).

vpnpptp

Официальный сайт vpnpptp. Программа написана на Pascal и Bash с использованием Qt. Из плюсов - много настроек, разрабатывается нашими соотечественниками, оптимизирована для подключения к beeline. Из минусов, пожалуй, довольно нестабильная работа, необходимость вводить root-пароль для подключения и не очень удобный интерфейс. (Ну и еще сам код программы жуткий).

L2tp-IPsec-VPN

Сайт, Wiki. Написана на C++ и Qt. Из плюсов - очень хорошая поддержка IPsec, неплохой интерфейс, можно подключаться без root пароля, активно разрабатывается, дружелюбный разработчик =). Из минусов - опять же, недостаточно стабильная работа, поддержку работы БЕЗ IPSec (нужно для работы с beeline) добавили совсем недавно (по моей просьбе), но заставить его работать с beeline так и не получилось.

Эпилог

Разработку веду на Github https://github.com/seriyps/NetworkManager-l2tp.
Пожелания, багрепорты, комментарии, благодарности приветствуются.

Тикеты с просьбой добавить поддержку L2TP в NM появились на Launchpad и Gnome в сентябре 2008г. Изначально плагин разработал Alexey Torkhov, но затем прекратил его поддержку.

linux на сервере → Замена для ifconfig, route, arp, etc.: утилиты iproute2

Вот недавно познакомился с этим набором утилит...

Этот пакет утилит представляет из себя замену таким заслужившим почет и уважение утилитам, как route, ifconfig, arp, netstat (т.н. net-tools).

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

Вообще-же, если по честному, то есть мнение, что net-toolsутилиты сейчас фактически существуют только для обратной совместимости. Плюс к этому, они не всегда корректно показывают и обрабатывают интерфейсы, настроенные утилитами более нового iproute2.

В то-же время iproute2 мало того, что полностью покрывают функционал net-tools утилит, но и поддерживают значительное количество новых возможностей сетевой подсистемы Linux!

Пара примеров под катом..

(далее...)

linux на сервере → Установка Redmine на Ubuntu под Nginx

Redmine - это довольно популярная в последнее время платформа для управления проектами и отслеживания ошибок.По идее, его установка - стандартная процедура, но мне, как совершенно незнакомому с Ruby и тонкостями установки Ruby софта пришлось повозиться.

Кроме того, в большинстве инструкций описывается использование Apache в качестве веб-сервера. У меня для этой цели будет использован Nginx

(далее...)

php → Тюнинг PHP — установка XCache на Ubuntu

Каждый раз, когда вы открываете страничку динамического веб-приложения, веб-сервер обращается к PHP, который загружает запрошенный .php файл и все include и require, затем парсит их, компилирует в промежуточный байт-код ( opcode) и исполняет. Причем в больших проектах процесс включения всех include файлов может занимать весьма продолжительное время.
Поэтому были разработаны многочисленные PHP-кешеры. Наиболее популярные из них - APC (Alternative PHP Cache), XCache и eAcelerator. Все они позволяют сохранять и повторно использовать скомпилированный байт-код PHP, что позволяет экономить время на сборку всех включений и их компиляцию, экономит процессорное время и оперативную память (причем весьма значительно). Помимо этого, они позволяют хранить в кеше переменные PHP и обращаться к ним при следующем вызове скрипта. Какой из этих кешеров использовать - не особо принципиально, по производительности они не сильно отличаются. Я выбрал XCache т.к. на него никто не ругается как на eAcelerator и я уже работал с APC и было интересно попробовать что-то новое (далее...)

linux на десктопе → Ubuntu 9.04 — решение частых проблем

Хоть Ubuntu 9.04 Jaunty вышла уже с месяц назад, но за это время успел встретиться с несколькими неприятными багами, с которыми благополучно справился. На всякий случай опишу эти баги и их "ремонт" (далее...)

linux на десктопе → How To: Установить VirtualBox в Ubuntu, вторая редакция

21 января вышла новая версия виртуальной машины VirtualBox.
В числе основных изменений - поддержка Windows 7 как в качестве гостевой ОС так и в качестве хоста.

Отдельно хочу заметить, что теперь поддержка USB в Linux работает сразу после установки, т.е. не нужно редактировать fstab или придумывать иные костыли

Кстати, уже довольно давно появился официальный репозиторий VirtualBox от Sun, так что установка и обновление еще больше упрощаются. Так-же изменились короткие имена названий типов ОС, выдаваемых по команде VBoxManage list ostypes . В связи с этими моментами обновяю инструкцию по установке и настройке. (Старая версия есть здесь). Итак!

Это руководство предназначено для помощи Linux пользователям установить VirtualBox из официального репозитория и настроить виртуальную машину WindowsXP (хотя, какую машину настраивать - не принципиально)
Состит процесс из 3-х этапов:
#1 Добавление репозитория VirtualBox в sources.lst и обновление списка программ
#2 Установка VirtualBox
#3 Настройка виртуальной машины

(далее...)

linux на десктопе → VPN в Linux из консоли (общага)

Быстренько о том, как настроить VPN подключение в общаге РХТУ в Ubuntu
Заметка больше для себя, чтоб в случае чего быстро все настроить, не знаю как подходит для других дистрибутивов и других провайдеров.. У нас в общаге работает норм

(далее...)

linux на десктопе → Перенос системы на другой жесткий диск

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

Реализовать это можно двумя способами, один - с использованием утилиты dd, второй - "вручную". Здесь опишу процесс переноса "вручную".

Так вот, состоит этот процесс из 5 пунктов:

  1. Подключение диска
  2. Подготовка и форматирование нового диска
  3. Перенос информации со старого диска на новый
  4. Редактирование fstab
  5. Установка загрузчика на новый диск

Ну, давайте по порядку... (далее...)

linux на десктопе → Восстановить программы после переустановки системы

Вступленье
Конечно, переустановка операционной системы не самое приятное занятие, но в общем-то особых проблем сама система не вызывает обычно.
Но совсем другая проблема - установка на свежеустановленную систему всех тех программ, которые были установлены в потертой "старой" системе. В Windows это всегда было кошмаром...
Хорошо если на харде много свободного места и есть папочка с дистрибутивами программ... Но устанавливать их все в любом случае придется вручную... А если захочется пользовательские настройки восстановить (половина которых хранятся в реестре)... Так что на восстановление системы к прежнему виду может уйти и не один день...
Windowsюзеры в таких случаях нередко просто делают полный образ системного раздела в тот момент, когда ось и программы установлены, но еще не попорчены вирусами, кривыми руками etc.
Тут есть как минимум 2 проблемки:
1) Сам образ занимает очень немало места.. для XP порядка 10-15Гб, для Vls lata 15-30Гб вместе с программами
2) Если у программ вышли обновления/если вы поменяли настройки программ после создания образа, то после восстановления они, само-собой, пропадут

Так что-же делать? (далее...)

linux на десктопе → Помогите Microsoft в борьбе с пиратскими версиями Windows — установите друзьям Linux!

В воскресенье соседка по общаге купила ноут...
Acer какой-т.. Там виста стоит (кто-бы сомневался). Сперва хотели поставить XP, но проблемы с поиском драйверов быстро оттолкнули эту затею.
Хард на нем всего 160Гб, разбит был как-то по уродски - там отдельный раздел 10 гигов в начале диска, недоступный для подключения.. " Конфигурация EISA" назывался. Как выяснилось, на нем находится " образ восстановления операционной системы". По сути-не очень-то и нужная вещь, чтобы больше 6% диска занимать.
Ну, я и подумал - че добро зря пропадает - с Live CD загрузил Ubuntu 8.04, Gparted-ом стер этот раздел и установил туда Hardy Heron )))
Оборудование все прекрасно определяется и работает. И WiFi и Bluetooth и веб-камера. Несколько программок, кодеков, драйвер на видео поставил, добавил NTFS разделы в fstab ну и тему оформления поменял, Compiz включил... Часа на 2-3 делов-то
Что самое приятное - хозяйке ведь понравилось!!! Терь говорит "лан, удаляй висту"
Но с этим, думаю, лучше не торопиться пока.

49.89 КБ
(кстати, поиск в гугле по словам " как удалить" у меня в первой строке выдает это http://support.microsoft.com/kb/247804/ru )))

Тут, правда, своя предистория имеется... Ведь весь прошлый год они моим компом пользовались (соседи т.е.) а на нем с ноября убунта стоит, так-что переход прошел вполне безболезненно. К тому-же вопрос, что проще - перейти с XP на висту или с XP на линукс не кажется смешным.
Еще прикол - вчера сказала, что ее подружке парень тоже Linux на ноут поставил.. Типа будут с ней вместе осваивать))

Так вот к чему эт я...
Люди, не стесняйтесь, не бойтесь возможных трудностей, советуйте знакомым линух юзать! Не так это и сложно все, установить, объяснить пару раз как запускать файрфокс аську и интернет-подключение да и все.. Делов-то! Показать, что нет в ентом линуксе ниче сверхсложного и все... Потом иногда по аське консультировать.. Вам потом еще и спасибо скажут!

linux на десктопе → Обновление до Ubuntu 8.04 Hardy Heron

Изменения по сравнению с предыдущей версией
Xorg 7.3
Linux kernel 2.6.24
GNOME 2.22
PolicyKit
PulseAudio
Firefox 3 Beta 4
Transmission
Vinagre
Brasero
Мировое время
Inkscape
Виртуализация
Интеграция с ActiveDirectory
Поддержка iSCSI
Firewall
Защита памяти
Wubi
umenu
(далее...)

Программирование → bash скриптик

Вот поразвлекался ночью...
Нужно было составить список фильмов на файлсервере и преобразовать его в список ссылок (BB кодов)
Ну, список получить не сложно оказалось, просто подмонтировал smbfilesystem к своей системе и сделал там ls
С преобразованием в ссылки оказалось сложнее т.к. имена файлов были как на английском, так и на русском так что нужно было преобразовать их в URL формат (т.е. что-то вроде %D4%E8%EB%FC%EC%FB%20%F1 )
Нарыл на эту тему описание схемы кодирования:
http://ru.wikipedia.org/
сам, как можно догадаться, его реализовать не смог, поэтому пришлось заюзать сервис Ответы Google там довольно быстро подсказали решение и в результате бессонной ночи и изучения мануалов по sed и awk получилось вот это чудо: (далее...)

linux на сервере → LAMP

(Linux, Apache, MySQL, PHP)
Ну куда-ж без него)))

Можно установить одной строчкой в консоли

apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential alien ssh openssh-server mysql-server mysql-client libmysqlclient15-dev phpmyadmin mysql-admin libapache2-mod-auth-mysql mysql-admin-common mysql-query-browser mysql-query-browser-common libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php-image-graph imagemagick php5-ldap apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert webalizer ntp ntpdate

(далее...)

linux на десктопе → Немного об iptables

Ну достали меня соседи и все тут....
В общаге в блоке один компьютер на 5 человек и тот мой Вот и приходится отбиваться каждый день от желающих посидеть.....
Вконтакте!(((

Но, благодаря некоторым фишкам linux эта проблема меня вряд-ли будет волновать теперь ]:->

И так, немного поковырявшись в просторах интернета, полистав умных книжек и посоветовавшись с парой несомненно продвинутых в этом деле товарищей, принялся ваять....
(далее...)