ЗаписиTOP 7 поисковых фраз (ответы на вопросы)

Всем привет!

Просматривая статистику по поисковым запросам, которые приводят на мой сайт, выявил популярные вопросы.

1 – shell du посчитать количество файлов

Вероятно, вас интересует, как посчитать количество файлов с помощью команды du (disk usage). Вообще, не очень понятен смысл считать количество файлов командой du, т.к. она показывает количество используемого места на диске. Обычно я считаю количество файлов с помощью команды find. Но раз вы так хотите, то и это осуществимо.

Для начала, чтобы посчитать количество файлов, нужно вывести все файлы в выбранном каталоге командой du. Для этого служит параметр -a или –all. Нижеприведенная команда показывает все файлы в каталоге /var

du -a /var
du --all /var

Потом нужно все эти файлы посчитать. Этим займется команда wc. Эта команда печатает количество строк, слов и байт в указанном файле, но в данном случае она будет брать не файл а входной поток. Т.е. вывод предыдущей команды она воспринимает как текстовый файл, и считает в нем строки, т.к. у нас каждый файл на новой строке. Чтобы команда wc считала исключительно строки, добавляем параметр -l (–lines). Выглядеть это будет так:

du -a /var | wc -l
du --all /var | wc --lines

У меня в /var получилось 24009 файлов. Кстати, если вы хотите подсчитать суммарный размер файлов, используйте команду du с флагом -s. И чтобы вывод был не в байтах, а в человечном виде (например в гигабайтах), нужно использовать еще флаг -h. Так можно узнать суммарный размер любого каталога.

du -sh /var
du --summarize --human-readable /var

2 – наложить патч на файл linux

Как это делается было объяснено в статье Создание и наложение патчей. Если что-то не понятно, пишите там в комментарии, я отвечу. Возможно вам придется поставить пакет patch чтобы установить недостающие компоненты, если что-то не работает.

3 – не запускается web клиент openerp

Здесь нужно смотреть, какие при этом он выдает ошибки в консоли терминала. Как правило не установлены нужные модули (зависимости). Посмотрите еще раз в документации по установке на сайте OpenERP (ссылка для версии 6.0.x, для 6.1 нужны другие зависимости)

4 – bash количество каталогов

Ну, это совсем просто. Нам потребуется использовать две команды в связке. Первая выводит все каталоги в нужной папке (type=directory), вторая, уже описанная в этом посте выше, считает количество строк в выводе и выводит результат.

find /var -type d | wc -l

5 – debian denwer

Извините, но зачем вам denwer на debian, когда полноценный веб-сервер ставится за одну минуту? Точно не уверен, но мне кажется что denwer под debian не существует, по крайней мере необходимости в нем на linux нет. Наберите команду:

aptitude update && aptitude install apache2 php5 mysql-server php5-mysql

можно еще добавить нужные вам библиотеки, например я обычно еще добавляю php5-gd для уменьшения изображений.

6 – linux bash shell команды

Постоянно обновляемый и пополняемый список полезных linux bash shell команд приведен на странице Полезные команды Linux

7 – кто работал с openerp

OpenERP сообщество в России еще не особо большое. Можно посмотреть в российской ветке форума OpenERP.

Еще есть arterp.ru – по ссылке имеется список клиентов с успешными внедрениями в России. Еще посетите wiki.arterp.ru, там есть инструкции со скриншотами и красивые схемы движения материалов :)

Блоги наших зарубежных коллег:
mohsinpage.wordpress.com
www.openerphell.com

С OpenERP также работаю я :)

  • мои записи по OpenERP можно посмотреть в этом блоге по тегу openerp.
  • написанные мной модули и патчи к OpenERP можно посмотреть на GitHub.

С OpenERP можешь начать работать и ты! Дерзай и все получится.

ЗаписиBash команда watch

Потребовалось в реальном времени видеть количество файлов в папке, чтобы видеть как они прибавляются и сколько еще ждать.

Нашел полезную команду watch, которая через заданный интервал повторяет нужную вам команду и отображает ее результат. Используется так:

watch -n количество_секунд "ваша команда"

В моем случае получилось так:

watch -n 1 "ls -1 | wc -l"

Посмотреть другие полезные команды Linux можно на странице Полезные команды Linux

ЗаписиFATAL: Ident authentication failed for user “openerp”

If you see this error, try to change ‘ident’ to ‘md5′ in file /etc/postgresql/9.0/main/pg_hba.conf

It works!

ЗаписиOpenERP Tips & Tricks

If you’re looking for manipulate many2many and one2many fields in OpenERP (to link objects to each other or delete or modify this link), you must write one of these values to many2many or one2many field:

many2many:

(0, 0,  { values })    link to a new record that needs to be created with the given values dictionary
(1, ID, { values })    update the linked record with id = ID (write *values* on it)
(2, ID)                remove and delete the linked record with id = ID (calls unlink on ID, that will delete the object completely, and the link to it as well)
(3, ID)                cut the link to the linked record with id = ID (delete the relationship between the two objects but does not delete the target object itself)
(4, ID)                link to existing record with id = ID (adds a relationship)
(5)                    unlink all (like using (3,ID) for all linked records)
(6, 0, [IDs])          replace the list of linked IDs (like using (5) then (4,ID) for each ID in the list of IDs)

Example:
   [(6, 0, [8, 5, 6, 4])] sets the many2many to ids [8, 5, 6, 4]

one2many:

(0, 0,  { values })    link to a new record that needs to be created with the given values dictionary
(1, ID, { values })    update the linked record with id = ID (write *values* on it)
(2, ID)                remove and delete the linked record with id = ID (calls unlink on ID, that will delete the object completely, and the link to it as well)

Example:
   [(0, 0, {'field_name':field_value_record1, ...}), (0, 0, {'field_name':field_value_record2, ...})]

ЗаписиСоздание и наложение патчей

Приходится по работе сейчас патчить openerp-web (веб-клиент для открытой ERP системы OpenERP http://openerp.com), т.к. он глюковат.

Вот, чтобы не забыть, как создать патч и как потом применить его к оригинальному файлу.

Создать патч:

diff -uN file.orig file.new > file.patch

Наложить патч:

patch file.orig < file.patch

Если кого-то интересуют патчи к openerp-web, загляните ко мне на GitHub: https://github.com/dskarataev/dskopenerp

ЗаписиЗапускаем openerp-web как сервис

Если вы уже скачали и установили openerp-web (об этом написано в инструкции), он запускается вручную и всё работает, и вы просто хотите чтобы он работал не только запущенным вручную, а всегда, то эта статья для вас.

Для того чтобы openerp-web работал всегда, нужно запускать его как сервис, т.е. прописать в /etc/init.d/

Для начала скопируйте содержимое скрипта, представленного ниже, в файл /etc/init.d/openerp-web

Продолжить чтение →

ЗаписиКак установить пакет из unstable (sid) на Debian testing (wheezy)

Бывает нужным установка пакета с unstable, когда у тебя testing. Например, такое недавно случилось с пакетом nvidia-glx после очередного обновления. nvidia-glx в testing оказался устаревшим.

Нет ничего проще, нужно сделать всего-то ничего:

1)добавить в /etc/apt/sources.list ветку unstable:

deb http://ftp.de.debian.org/debian testing main contrib non-free
deb http://ftp.de.debian.org/debian unstable main contrib non-free

2)чтобы не потянуть из unstable еще кучу зависимостей, прописать основной веткой testing в /etc/apt/apt.conf (скорее всего вам потребуется создать этот файл):

APT::Default-Release "testing";

3)теперь все почти как обычно. Обновляем список пакетов, и ставим нужный пакет из нужной ветки:

aptitude update
aptitude -t unstable install nvidia-glx

если не указывать другим пакетам вручную ветку, из которой следует их поставить, то они будут устанавливаться из той ветки, которая прописана как Default-Release. Вот и всё.

ЗаписиDebian, ядро 2.6.39-2-686-pae и nvidia

Недавно в Debian testing обновилось ядро на 2.6.39-2-686-pae. У меня стоит видеодрайвер от nvidia, и с прошлым ядром система грузилась на отлично, но с этим не захотела. Пишет:

x server can’t find nvidia module

Погуглил, нашел причину. Нужно установить пакет linux-headers-2.6.39-2-686-pae, после чего модули для этого ядра установятся правильно. Может кому нибудь поможет :)

ЗаписиПолезные команды Linux

Здесь я буду собирать нужные и полезные мне shell (bash) команды, потому что обычно со временем они забываются, и потом, когда они снова нужны, я уже не могу их вспомнить. Эта запись будет обновляться каждый раз, как я буду сталкиваться с полезными командами.

#Выводит (не рекурсивно) количество файлов и папок в текущей папке. Первая команда выводит по одному файлу
#в строку, а вторая считает количество этих строк. Здесь не учитываются скрытые файлы, начинающиеся с точки.
#Хотите их тоже учитывать - вместо ls -1 напишите ls -al, но не забудьте из результата вычесть 2, т.к. в выводе
#первые две строки займут текущий каталог и каталог-родитель (. и ..)
ls -1 | wc -l
 
#То же что и выше, только включая скрытые файлы и каталоги . и .., т.е. реальное количество всех файлов в папке
#будет на 2 меньше, чем выведет команда
ls -1a | wc -l
 
#Считаем, сколько места на диске занимает каталог. Выводим в человечном виде - не в байтах, а в Мб или Гб.
du -sh /var
 
#Кладем папку в архив .tar.gz, который создается в текущем каталоге
tar cvfz archive.tar.gz dir_name
 
#Распаковываем содержимое архив .tar.gz в текущий каталог
tar xvfz archive.tar.gz
 
#Просмотр файла с возможностью скроллинга вверх и вниз
less file.txt
 
#Просмотр последних записей в лог-файле
tail file.txt
 
#Просмотр скорости чтения диска
hdparm -t /dev/sda
 
#Создать патч
diff -uN file.orig file.new > file.patch
 
#Наложить патч
patch file.orig < file.patch
 
#Просмотр количества файлов в папке с обновлением в реальном времени
watch -n 1 "ls -1 | wc -l"
 
#Количество подкаталогов в указанном каталоге
find /var -type d | wc -l

ЗаписиМой боевой набор для веб-разработки на PHP

Конечно, в первую очередь мозги, глаза и руки :)

Но есть еще несколько вещей:

  • PC: стационарный, с операционной системой Debian Linux и монитором >= 17″
  • локально установленные Apache, MySQL, PHP, phpMyAdmin adminer.php для тестирования написанного кода
  • IDE: NetBeans
  • Git через SmartGit
  • частенько выручает терминал

 

Когда-то, лет 5 назад, у меня стояла WindowsXP, Denwer и Notepad++. Если сейчас ваш набор примерно такой – советую переосмыслить свои взгляды на удобную веб-разработку. Конечно, ничего ужасного нет и в этом варианте, но поработав в нормальной IDE и заточенной под веб операционной системе, как-то совсем не возникает желания хотя бы на секунду поменять все назад :)