Блог - 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 эта проблема меня вряд-ли будет волновать теперь ]:->

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