Архив рубрики: linux

phpmyadmin + apach2

sudo apt-get install phpmyadmin

Если у Вас в репозитории свежий пакет phpmyadmin, то в процессе установки он спросит пароль для доступа к базе данных mysql, а так же там он создаст свои таблицы с настройками, а ещё спросит логин и пароль для своего постоянного использования. Затем перезапускаем наш веб-сервер Apache:

sudo /etc/init.d/apache2 restart

Теперь мы смело можем проверить на работоспособность сие дивное веб-приложение. Для этого набираем, если на локальном компьютере то ссылку в браузере:

http://localhost/phpmyadmin

А если с другого компьютера в сети, то пишем тогда:

http://192.168.100.134/phpmyadmin

соответственно вместо 192.168.100.134 у Вас будет своя айпишка сервера, которую и надо соответственно вписать. Если всё прошло удачно, то наслаждаемся пользованием сия дивного продукта, но если не грузится страничка и выдаёт ошибку, то тогда редактируем конфигурационный файлик Apache:

sudo nano /etc/apache2/apache2.conf

И в конец открывшегося файла добавляем строчку:

Include /etc/phpmyadmin/apache.conf

Затем нажимаем клавишу F3 для сохранения, enter — для подтверждения, и F2 — для выхода из файла. Затем нам останется только заново перезагрузить наш вэб-сервер:

sudo /etc/init.d/apache2 restart

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

log btmp

http://verner.ws/2011/btmp-файл-в-linux/

http://linuxnow.ru/view.php?id=50

Есть такой файл в некоторых ОС на базе *nix.
Этот файл содержит логи неудачных попыток входа в систему.

Для корректного обновления этого файла у вас должен быть настроен файл конфигурации logrotate.conf примерно таким образом:


/var/log/btmp {
monthly
minsize 1M
create 0600 root utmp
rotate 1
}

Для просмотра файла используем команду:

last -f /var/log/btmp

Вы можете изменить количество создаваемых лог файлов в параметре rotate.
Обычно мы можем наблюдать в этом файле попытки подбора имени и пароля для входа в систему.
Для очистки лога используем команду:

cat /dev/null > /var/log/wtmp

du поиск по размеру папки

http://linuxcmd.ru/kak-uznat-razmer-papki-v-linux

du -s *|sort -nr|cut -f 2-|while read a;do du -hs $a;done

Просмотр размера текущей папки

Чтобы показать объем просто одного текущего каталога (со всеми вложенными файлами + подкаталогами) подойдёт команда du с ключиком -sh.

Вот пример, как определить размер директории данного сайта:

du -sh

root@Debian:/var/www/linuxcmd.ru# du -sh
25M     .
root@Debian:/var/www/linuxcmd.ru#

Посмотреть размеры всех папок

 

Если нужно посчитать вес всех директорий плюс файлы — добавляем звёздочку:

du -sh *

root@Debian:/var/www/linuxcmd.ru# du -sh *
4.0K    unix.html
8.0K    authorize.php
4.0K    cron.php
2.1M    files
4.0K    centos.html
72K     img
2.2M    includes
4.0K    index.php
4.0K    install.php
912K    misc
12M     modules
196K    profiles
4.0K    robots.txt
80K     scripts
7.0M    sites
696K    themes
8.0K    translations
20K     update.php
4.0K    web.config
4.0K    xmlrpc.php
0       ubuntu.txt
root@Debian:/var/www/linuxcmd.ru#

Отобразить размеры всех вложенных папок

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

du -h

Внимание: если такой случайно запустить в корне на объёмном диске с большим количеством информации — лучше сразу жмите CTRL-C, т.к. во-первых, иначе придётся сильно подождать  ;)  , во-вторых, десятки-сотни экранов информации будут бессмысленными. Потому эта простая команда должна использоваться лишь для, соответственно, простых случаев.

Отсортировать папки по объёму

du -s *| sort -nr

Покажет объём в килобайтах с сортировкой — самые большие папки/файлы сверху. Если нужно в мегабайтах:

du -sm *| sort -nr

К сожалению более удобный ключик h («human» — автовыбор кило-мега-гига) в данном случае (du -sh *| sort -nr) не подойдёт, т.к. сортировка идёт по «числам» (не учитывая, что это KB/MB/GB). Для этого придётся использовать длинную команду:

du -s *|sort -nr|cut -f 2-|while read a;do du -hs $a;done

root@Debian:/var/www/linuxcmd.ru# du -s *|sort -nr|cut -f 2-|while read a;do du -hs $a;done
12M     modules
7.0M    sites
2.2M    includes
2.1M    files
912K    misc
696K    themes
196K    profiles
80K     scripts
72K     img
20K     update.php
8.0K    translations
8.0K    authorize.php
4.0K    xmlrpc.php
4.0K    web.config
4.0K    robots.txt
4.0K    install.php
4.0K    index.php
4.0K    centos.html
4.0K    cron.php
4.0K    unix.html
0       ubuntu.txt
root@Debian:/var/www/linuxcmd.ru#

Получается «заумно», зато всё красиво!

Такую можно уже запускать даже в корне, обождав (если файлов много — серьёзно обождав) получим нечто типа:

root@Debian:/# du -s *|sort -nr|cut -f 2-|while read a;do du -hs $a;done
du: cannot access `proc/30976/task/30976/fd/4′: No such file or directory
du: cannot access `proc/30976/task/30976/fdinfo/4′: No such file or directory
du: cannot access `proc/30976/fd/4′: No such file or directory
du: cannot access `proc/30976/fdinfo/4′: No such file or directory

314M    usr
291M    var
120M    lib
76M     tmp
34M     home
18M     boot
4.6M    bin
4.4M    sbin
3.0M    etc
56K     dev
32K     root
16K     lost+found
4.0K    srv
4.0K    selinux
4.0K    opt
4.0K    mnt
4.0K    media
0       sys

du: cannot access `proc/31009/task/31009/fd/4′: No such file or directory
du: cannot access `proc/31009/task/31009/fdinfo/4′: No such file or directory
du: cannot access `proc/31009/fd/4′: No such file or directory
du: cannot access `proc/31009/fdinfo/4′: No such file or directory

0       proc
root@Debian:/#

 

Если вам помогла или просто понравилась статья - плюсаните/поделитесь, пожалуйста.

 

Комментарии

 

Linux + размер папки = du —si -s

Вообще-то, это то же самое, как и определение размера директории с помощью du -sh ;)  Ибо ключик —si = -h, лишь считающий, что 1024=1000 :)

 

Народ, а как найти размер папки (linux), у которой он больше чем, скажем, 100 мегабайт?

Придётся использовать (для linux — размер папок) ещё более хитрую конструкцию с добавлением find:

find -type d | while read DIRNAME; do if ((`du -sm «$DIRNAME» | awk ‘{print $1}’`>100))  ; then echo $DIRNAME; fi;done

п.с. Небольшая неудобность будет в том, что если вложенная папка больше 100M, то будут перечислены и все папки «более высокого уровня» — ведь они тоже будут весить больше 100Мб.

п.с.п.с. Если требуются другие пределы, скажем, больше 20k, то вместо…

(`du -sm «$DIRNAME» | awk ‘{print $1}’`> 100)

…пишем…

(`du -sk «$DIRNAME» | awk ‘{print $1}’`> 20)

…и т.п. по аналогии.

 

Выводи то, что весит больше 100Мб, по возрастанию:

du -xm | sort -ni | awk ‘{if($1>100) print}’

Не сработает.

А вот один из гуру линуксов подсказал следующие вариантики:

Linux — узнать размер папки с сортировкой

find /home/hamer/download/ -type d -exec du -sm «{}» \; | awk «{if (\$1 > 100) print}»
38957   /home/hamer/download/
696     /home/hamer/download/IM
109     /home/hamer/download/IM/qutim
302     /home/hamer/download/IM/skype
143     /home/hamer/download/IM/skype/2012
107     /home/hamer/download/IM/twister
101     /home/hamer/download/IM/twister/bin

Linux — размер каталогов с сортировкой без вывода самих размеров

find /home/hamer/download/ -type d -exec du -sm «{}» \; | awk «{if (\$1 > 100) print \$2}»
/home/hamer/download/
/home/hamer/download/IM
/home/hamer/download/IM/qutim

 

du —max-depth=1 -m |sort -n

показывает все папки в каталоге в мегабайтах и сортирует по возрастанию.

 

У команды sort есть ключик -h. Следующая команда выведет в удобочитаемом виде список директорий по убыванию размера:

du -sh * | sort -hr

grep

Grep has the following options that will let you do this (and things like it). You may want to take a look at the man page for more information:

  • -A num Print num lines of trailing context after each match. See also the -B and -C options.
  • -B num Print num lines of leading context before each match. See also the -A and -C options.
  • -C[num] Print num lines of leading and trailing context surrounding each match. The default is 2 and is equivalent to -A 2 -B 2. Note: no whitespace may be given between the option and its argument.

vim

http://proft.me/categories/vim/

Полезные советы для VIM #4 Vim

Fullscreen в GVIM Vim

Поиск по содержимому файлов не выходя из VIM Vi

Управление плагинами в VIM Vim

Снипетты в VIM V

Полезные советы для VIM #3 Vim

Полезные советы для VIM #2 Vim

Полезные советы для VIM #1 Vim

Расцветка кода в gVim Vi

Настройка шрифта в VIM Vim

Комментирование кода в VIM Vim

Управление окнами в VIM Vim

Сравнение файлов в VIM Vim

VIM: выполнение команд при поиске Vim

Сворачивание (folding) в VIM Vi

Запись макросов в VIM Vim

Vim – наше все! Vim

curl and wget

wget — консольная утилита для скачивания файлов/сайтов, умеет выкачивать файлы рекурсивно, следуя по ссылкам автоматически.

Команда Описание
wget http://example.com/file.zip скачивание файла file.zip в текущую директорию
wget -P /path/to/save http://example.com/file.zip скачивание файла file.zip в директорию /path/to/save
wget -c http://example.com/file.zip докачивание файла file.zip в случаи обрыва
wget -O arch.zip http://example.com/file.zip скачивание файла file.zip и сохранение под именем arch.zip
wget -i files.txt скачивание файлов из списка в files.txt
wget —tries=10 http://example.com/file.zip количество попыток на скачивание
wget -Q5m -i http://example.com/ квота на максимальный размер скачанных файлов, квота действует только при рекурсивном скачивании (-r)
wget —save-cookies cookies.txt —post-data ‘username=proft&password=1′ http://example.com/auth.php идентификация на сервере с сохранением кук для последующего доступа
wget —user-agent=»Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5″ http://example.com/ указание User Agent
echo ‘wget http://example.com/file.zip’ | at 12:00 скачать http://example.com/file.zip в 12:00 в текущую директорию
wget ftp://example.com/dir/*.zip скачивание всех файлов по шаблону
wget http://example.com/dir/file{1..10}.zip скачивание всех файлов по шаблону
wget -S http://example.com/ вывод заголовков HTTP серверов и ответов FTP серверов
wget —spider -i urls.txt проверка ссылок в файле на доступность
wget -b http://example.com/file.zip скачивание файла в фоне, лог пишется в wget.log, wget.log.1 и т.д.
export http_proxy=http://proxy.com:3128/;wget http://example.com/file.zip скачивание файла *file.zip* через прокси
wget -m -w 2 http://example.com/ зеркалирование сайта с сохранением абсолютных ссылок и ожиданием 2-х секунд между запросами
wget —limit-rate=200k http://example.com/file.zip ограничение скорости скачивания
wget -R bmp http://example.com/ не скачивать bmp файлы
wget -A png,jpg http://example.com/ скачивать только файлы png и jpg

Пример использования для скачивания документации Django:

wget -r -k -l 5 -p -E -nc -np https://docs.djangoproject.com/en/1.5/

  • -r - ходим по ссылкам (рекурсивное скачивание)
  • -k - преобразовываем ссылки к локальному виду
  • -p - скачивание ресурсов необходимых для отображения html-страницы (стили, картинки и т.д.)
  • -l - глубина скачивания, 0 - бесконечная вложенность ссылок
  • -nc - не перезаписывать существующие файлы
  • -np - не подниматься выше начального адреса при рекурсивной загрузке

Часто используемые wget параметры можно вынести в ~/.wgetrc.

curl — консольная утилита для передачи данных используя URL-синтаксис, поддерживаются протоколы DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet и TFTP.

Команда Описание
curl http://proft.me получаем содержания главной страницы
curl -o index.html http://proft.me получаем содержания главной страницы в файл index.html
curl -L http://example.com при получении содержимого страницы следовать по редиректам (если такие есть)
curl -u username:password http://example.com/login/ получение страницы скрытой за Basic HTTP Authentication
curl -x proxy.com:3128 http://proft.me получение страницы используя прокси
curl -I proft.me получаем http-заголовки с сайта
curl -H ‘Host: google.ru’ http://proft.me подменить домен при обращении к серверу (передача своего заголовка)
curl —request POST «http://example.com/form/» —data «field1=value1&field2=value2″ передача данных POST-запросом
curl -X POST «http://example.com/form/» —data «field1=value1&field2=value2″ передача данных POST-запросом
curl -X POST -H «Content-Type: application/json» -d ‘»title»:»Commando»,»year»:»1985″‘ http://example.com/api/movies/ передача данных POST-запросом, данные в виде JSON
curl —request PUT «http://example.com/api/movie/1/» —data «title=DjangoUnchained» передача данных PUT-запросом
curl -F uploadfiled=@file.zip -F submit=OK http://example.com/upload/ загрузка файла file.zip в форму (multipart/form-data)
curl -u username:password -O ftp://example.com/file.zip скачать файл с FTP
curl -u username:password -T file.zip ftp://example.com/ закачать файл по FTP
curl —cookie «login=proft» http://example.com/login/ установить кукис
curl —cookie-jar cookies.txt http://example.com сохранение кукисов в файл
curl —cookie cookies.txt http://example.com/login/ использование сохраненных кукисов

repo

http://howtoit.ru/linux/centos/item/15-podklyuchenie-repozitoriev-centos-6-epel-rpmforge-remi.html

Репозиторий EPEL (Extra Packages for Enterprise Linux) — поддерживается в рамках проекта Fedora и содержит некоторые пакеты, которые не вошли в стандартный набор RHEL (CentOS).

RPMforge (теперь называется RepoForge) является результатом сотрудничества создателей пакетов. Он содержит более 4000 пакетов для CentOS. При этом RepoForge не является частью Red Hat или CentOS, но предназначен для работы с этими (и некоторыми другими) дистрибутивами.

Создатели репозитория Remi пишут, что основной задачей Remi является предоставление самых последних версий пакетов для rpm-based дистрибутивов, в том числе CentOS, RHEL, Fedora и др. Особенно важным это является в том случае если вы используете не самую последнюю версию дистрибутива и выпуск новых пакетов в официальных репозиториях уже прекращен.

В первую очередь желательно проверить какие репозитории уже подключены в вашей системе:

yum repolist

Результатом будет вывод:

repo id                          repo name                                  status
base                             CentOS-6 — Base                            4 776
extras                           CentOS-6 — Extras                             17
updates                        CentOS-6 — Updates                           851

Установка репозитория EPEL в CentOS 6:

Часто рекомендуется перед подключением этого репозитория скачать выполнить импорт GPG ключа. Но, по большому счету скачивать, и отдельно устанавливать GPG ключ не требуется, т.к. он включен в пакет, размещается в каталоге /etc/pki/rpm-gpg/ и после установки и вам будет предложено его импортировать при первой установке пакета из репозитория EPEL.

Однако, если вы все же хотите импортировать GPG ключ перед подключением репозитория EPEL к CentOS, выполните команду:

rpm —import https://fedoraproject.org/static/0608B895.txt

Проверьте корректность импорта:

# rpm -qa gpg*
gpg-pubkey-0608b895-4bd22942

Для установки репозитория EPEL выполните команду:

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

Если команда выдает ошибку, то значит уже выпущена новая версия пакета. Перейдите по ссылкеhttp://download.fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html и подставьте номер новой версии в ссылку или скачайте и установите из локальной папки.

Установка репозитория RepoForge (бывш. RPMForge) в CentOS 6:

Ситуация с GPG ключом здесь точно такая же, как в EPEL.

Для установки GPG ключа перед подключением репозитория выполните:

rpm —import http://apt.sw.be/RPM-GPG-KEY.dag.txt

Проверьте корректность импорта:

# rpm -qa gpg*
gpg-pubkey-c105b9de-4e0fd3a3

Для подключения репозитория в 32-битной системе выполните следующую команду:

rpm -Uhv http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

А для 64-битной системы эту:

rpm -Uhv http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

В том случае, если команда завершилась с ошибкой, возможно, что ссылки на пакеты устарели, тогда используйте ссылки, указанные здесь: http://repoforge.org/use/

Установка репозитория REMI в CentOS 6:

Для установки GPG ключа перед подключением репозитория выполните:

rpm —import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
gpg-pubkey-00f97f56-467e318a

Для подключения репозитория:

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Репозиторий REMI устанавливается отключенным. Для подключения в файле /etc/yum.repos.d/remi.repo  необходимо поменять значение переменной enabled в секции [remi] c 0 на 1. На примере редактора vi:

Выполните

vi /etc/yum.repos.d/remi.repo

Нажмите Insert для перехода в режим ввода.

Поменяйте значение переменной enabled в секции [remi] с 0 на 1

Нажмите Esc для перехода в режим команд

Для сохранения и выхода введите:

:wq

На этом подключение дополнительных репозиториев в CentOS 6 можно считать завершенным.

Однако, дополнительно рекомендуется установить и настроить плагин yum: yum-priorities. Применение данного плагина обусловлено тем, что в подключенных дополнительных репозиториях могут содержаться пакеты обновляющие такие из официальных репозиториев, что часто может вызвать проблемы, к примеру несовместимость версии php и вашей CMS. Плагин  yum-priorities применяется для упорядочивания приоритетов репозиториев. Пакеты из репозиторя с более низким приоритетом не будут обновлять пакеты, установленные из репозиториев, имеющих более высокий приоритет. Также приоритеты используются и при установке новых пакетов — в том случае, если пакет находится в двух или более репозиториях, он будет установлен из того репозитория, который имеет наивысший приоритет.

Для установки плагина  yum-priorities выполните:

yum install -y yum-priorities

После установки плагина добавьте строку priority=10 в первую секцию каждого файла:

/etc/yum.repos.d/epel.repo
/etc/yum.repos.d/rpmforge.repo
/etc/yum.repos.d/remi.repo

Проверьте список подключенных репозиториев:

# yum repolist
repo id             repo name                                                     status
base                 CentOS-6 — Base                                             4 710+66
epel                 Extra Packages for Enterprise Linux 6 — i386        6 887
extras               CentOS-6 — Extras                                           10+7
rpmforge          RHEL 6 — RPMforge.net — dag                             4 512+1
updates            CentOS-6 — Updates                                         850+1

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

yum -y update

chkconfig

http://ss64.com/bash/chkconfig.html

Для добавлении сервиса в автозагрузку ОС CentOS/RHEL, сущеcтвует служба chkconfig

  • chkconfig —list <имя службы>
  • chkconfig —add <имя службы>
  • chkconfig —del <имя службы>
  • chkconfig [—level levels] <имя службы> <on|off|reset>
  • chkconfig [—level levels] <имя службы>

This implementation of chkconfig was inspired by the chkconfig command present in the IRIX operating system. Rather than maintaining configuration information outside of the /etc/rc[0-6].d hierarchy, however, this version directly manages the symlinks in /etc/rc[0-6].d. This leaves all of the configuration information regarding what services init starts in a single location.

--level levels
             The run levels an operation should pertain to.
             Given as a string of numbers from 0 to 7.
             For example, --level 35 specifies runlevels 3 and 5.

chmod для папок или файлов

# для директорий используем -type d 
cd /home/target_dir 
find . -type d -exec chmod 755 {} \;   

# для файлов -type f 
cd /home/target_dir 
find . -type f -exec chmod 644 {} \;   

# по маске имени с параметром -name
cd /home/target_dir 
find . -type f -name '*.htm*' -exec chmod 644 {} \;   

# для наглядности можно выполнить
find /home/target_dir/ -type f -name '*.php' -exec echo '-- '{} \;

uploads wp

Аналог php_value engine off для 

В Apache проблема решается просто: в каталог uploads помещается .htaccessследующего содержания:

[-]
View Code Apache configuration
php_value engine off

В nginx .htaccess не предусмотрен (что можно рассматривать и как достоинство, и как недостаток), поэтому там нужно применить несколько другой подход.

В описание виртуального хоста помещаем следующие строки:

[-]
View Code nginx configuration
location ^~ /wp-content/uploads/ {
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php last;
}types {
text/plain php php3 php4 php5 phtml phps pl pm;
}
}

И заставить nginx перечитать конфигурацию:

[-]
View Code Bash
invoke-rc.d nginx reload

Для nginx 0.7.32 и выше есть другой вариант:

[-]
View Code nginx configuration
location ^~ /wp-content/uploads/ {
types {
text/plain php php3 php4 php5 phtml phps pl pm;
}try_files $uri $uri/ @wordpress;
}

Как выглядит location @wordpress, можно прочитать здесь.

Всё просто!™