arch или uname -m — отобразить архитектуру компьютера
uname -r — отобразить используемую версию ядра
dmidecode -q — показать аппаратные системные компоненты — (SMBIOS / DMI)
hdparm -i /dev/hda — вывести характеристики жесткого диска
cat /proc/cpuinfo — отобразить информацию о процессоре
cat /proc/interrupts — показать прерывания
cat /proc/meminfo — проверить использование памяти
cat /proc/swaps — показать файл(ы) подкачки
cat /proc/version — вывести версию ядра
cat /proc/net/dev — показать сетевые интерфейсы и статистику по ним
cat /proc/mounts — отобразить смонтированные файловые системы
lspci -tv — показать в виде дерева PCI устройства
lsusb -tv — показать в виде дерева USB устройства
date — вывести системную дату
cal 2007 — вывести таблицу-календарь 2007-го года
date 041217002007.00* — установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды)
clock -w — сохранить системное время в BIOS
метка: Shell
Тестирование отправки почты в Django
При написании чего либо где идет отправка электронных писем я вещаю эту задачу на сам python. Тоесть запускаю демон на прослушку порта
python -m smtpd -n -c DebuggingServer localhost:1025
После чего консоль замирает и при отсылке письма django(Й) в консоли вылазит сообщение в формате протокола. Для примера у меня при тестировании регистрации прилетает вот такое сообщение:
---------- MESSAGE FOLLOWS ---------- Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: =?utf-8?b?0JDQutGC0LjQstCw0YbQuNGPINCw0LrQutCw0YPQvdGC0LAg4oCTIDEyNy4w?= =?utf-8?b?LjAuMTo4ODAw?= From: info@google.ru To: mr.kropotov@gmail.com Date: Fri, 05 Aug 2011 13:16:47 -0000 Message-ID: <20110805131647.2229.25515@macbook.local> X-Peer: 127.0.0.1 =D0=A0=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80=D0=B0=D1=86=D0=B8=D1=8F =D0=BD= =D0=B0 =D1=81=D0=B0=D0=B9=D1=82=D0=B5 =D0=94=D0=BB=D1=8F =D0=B0=D0=BA=D1=82=D0=B8=D0=B2=D0=B0=D1=86=D0=B8=D0=B8 = =D0=B2=D0=B0=D1=88=D0=B5=D0=B3=D0=BE =D0=B0=D0=BA=D0=BA=D0=B0=D1=83=D0=BD= =D1=82=D0=B0 =D0=BD=D0=B5=D0=BE=D0=B1=D1=85=D0=BE=D0=B4=D0=B8=D0=BC=D0=BE = =D0=BF=D0=B5=D1=80=D0=B5=D0=B9=D1=82=D0=B8 =D0=BF=D0=BE =D1=81=D1=81=D1=8B= =D0=BB=D0=BA=D0=B5: 127.0.0.1:8800/accounts/activate/a205cae311a087b553d07648522f7730792d29bd/ =D0=A1=D0=BF=D0=B0=D1=81=D0=B8=D0=B1=D0=BE! ------------ END MESSAGE ------------
Установка wget на Mac OS
Скачивай пакет wget от сюда http://ftp.gnu.org/gnu/wget/ (последний пакет wget-1.12.tar.gz)
распаковываем архив и устанавливаем пакет
tar -xvf wget-1.12.tar.gz cd wget-1.12 ./configure sudo make install
Все wget установлен и работает на ура.
ISPmanager — домен второго уровня «чужому» пользователю
Как известно имея пользователя username_1 и закрепленный за ним домен username1.loc нельзя создать домен второго-третьего-и т.д. домена для «чужого» пользователя — пользователя системы, но не имеющий домен username1.loc.
Да я немного оговорился — в ISPmanager Pro есть такая возможность установив галочку «Разрешить администратору смешивать домены». Но например в моем случае Lite как и у большинства пользователей сети юзающих сервера под этой панелью необходимо законектится по SSH из под рута и отредактировать файл конфига
vim /usr/local/ispmgr/etc/ispmgr.conf
Добавив строку
Option InsecureDomain
после чего перезапустить демон
killall ispmgr
Wget и роботы
Если вам понадобилось сделать локальную копию интересующего вас сайта, то wget будет очень полезен
$ wget -v -m -k -K -E -w 1 -p --output-file=wget.log http://www.developtolive.com/
Но, допустим, картинки вида http://www.developtolive.com/images/supersecret.png не списались и по-прежнему берутся с сайта, то стоит посмотреть на содержимое файла robots.txt. Там может быть запрет на списывание контента роботами:
User-agent: * Disallow: /images/ ... Host: www.developtolive.com
Это просьба владельца сайта к подобным краулерам не тянуть лишнее. Стоит её уважать. Но если всё-таки хочется переступить через эту просьбу, то можно сказать “-e robots=off” и wget прекрасно всё стянет:
$ wget -v -m -k -K -E -p -e robots=off -w 1 --output-file=wget.log http://www.developtolive.com/
Теперь осталось скормить списанный сайт браузеру или, что более полезно, забросить копию в DocumentRoot web-сервера и наслаждаться результатом.
Лечим кодировку в Midnight Commander
На одной из виртуальных машин поднял образ centos от bitrix с их приблудами, но обещанного mc там небыло. После установки и запуска данного зверька оказалась, что он отображает все в краказябрах. Лечиться это в Midnight Commander следующим образом, очень простым образом=) , выполните из консоли команду
export LANG=ru_RU.koi8r
Ну вот и все, как говорить дабудет счастье=)
Создание виртуальных хостов в виртуальной машине Битрикс
Предположим, у нас есть вебсервер с настроенной связкой Apache — Nginx, например, Bitrix Virtual Appliance, и мы хотим сделать на этом сервере дополнительный виртуальный хост (или несколько хостов).
- Заведём папку для нашего будущего виртуального хоста. Где она будет находиться — не принципиально. Мне удобнее держать виртуальные хосты в папке
/var/vhosts. Допустим, мы создаём хост с именем virtualka1, это значит, что нам надо создать папку/var/vhosts/virtualka1. Внутри нам понадобятся еще 2 папки:www— содержимое этой папки будет доступно из браузера, иlog— в этой папке будем держать логии нашей виртуалки. Разумеется все манипуляции делаются от root’а. - Теперь созданную нами папку надо сделать доступной для пользователя
bitrix, от которого обычно и осуществляется вся работа с сайтом. Для этого, находясь в папке/var/vhosts, мы выполняем командуchown –R bitrix:bitrix virtualka1/Теперь пользователь
bitrixможет делать с этой папкой всё. Для большего удобства, создадим символическую ссылку на эту папку в домашней директории пользователя:ln –s /var/vhosts/virtualka1 /home/bitrix - Переходим к настройке серверов Nginx и Apache. Конфиги будем располагать таким образом, что насторйка каждого виртуального хоста будет храниться в отдельном файле в папке
sites-available. А в папкеsites-enabledбудут лежать симлинки на конфиги тех виртуалок, которые нам нужны. Таким образом можно будет легко разобраться где какой конфиг лежит и, при необходимости, отключить ненужные путём удаления симлинка.NginxНаходим файл
/etc/nginx/nginx.confи добавляем в самый конец перед закрывающей скобкой}такую строчку:include /etc/nginx/sites-enabled/*;Это заставит nginx грузить конфиги из папки
sites-enabled. Разуемеется папкиsites-availableиsites-enabledдолжны существовать в директории/etc/nginx, если их нет, то надо создать. Теперь в папкеsites-availableсоздаём файлvirtualka1с таким содержимым:server { listen 80; server_name virtualka1; server_name_in_redirect off; access_log /var/vhosts/virtualka1/log/nginx_access.log common; index index.php; error_page 500 502 503 504 /500.html; error_page 404 = /404.php; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host:80; client_max_body_size 1024M; client_body_buffer_size 4M; root /var/vhosts/virtualka1/www; location / { expires 3d; proxy_pass http://127.0.0.1:8888; } location ~ (/|\.php)$ { proxy_pass http://127.0.0.1:8888; } }Всё, осталось сделать симлинк на наш конфиг в папку
/etc/nginx/sites-enabled/.Apache
Проконтролируем, чтобы в конце файла
/etc/apache2/apache2.confбыла строчкаInclude /etc/apache2/sites-enabled/, а так же, чтобы были папки/etc/apache2/sites-availableи/etc/apache2/sites-enabled. Если все хорошо, то в папке/etc/apache2/sites-availableсоздаём файлvirtualka1с таким содержимым:<VirtualHost *:8888> ServerName virtualka1 ServerAdmin webmaster@localhost DocumentRoot /var/vhosts/virtualka1/www ErrorLog /var/vhosts/virtualka1/log/apache2_error.log CustomLog /var/vhosts/virtualka1/log/apache2_access.log combined </VirtualHost>Делаем симлинк на созданный конфиг в папку
/etc/apache2/sites-enabled/. - Осталось перезапустить сервера:
/etc/init.d/nginx restart /etc/init.d/apache2 restart
Всё, виртуалка должна работать. Проверялось на BVA 1.6.
Есть один нюанс: исходные конфиги виртуалок битрикса намного больше, потому что заточены специально под него (например, там есть специальная настройка для HTML-кэшa). Я повыкидывал из них всё, на мой взгляд, не нужное, ведь у меня на этих виртуалках далеко не всегда крутиться битрикс :)
Для тех, кому лень вручную всё это делать
Мне вот лень, поэтому я написал себе скриптик. В качестве единственного параметра он принимает название виртуалки, оно же название БД, оно же логин к БД и пароль к БД. Да, скрипт автоматически создаёт и базу тоже.
Способ применения:
crSite.sh virtualka1
Не забываем разрешить скрипту исполняться.
(с)
MacPorts команды
$port list — выводит список всех возможных програм
$port search program_name — поиск по названию програмы
$port info program_name — информация по програме
$port deps program_name — зависимости програмы
$port variants program_name — варианты установки програмы
$sudo port install program_name — установка программы
$port clean —all program_name — удаление исходников программы
$port uninstall program_name — удаление програмы
$port contents program_name — библиотеки и бинарники програмы
$port installed — установленые програмы
$port outdated — выводит установленные програмы которые можно обновить
$port upgrade program_name — обновление програмы
$port upgrade outdated — обновление всех програм
$port dependents program_name — показывает програмы зависимые от program_name
add in $PATH
Как во всем инете пишется добавь в ./profile и будет счастье, да хрен там, что то я его так и не обрел. Я тупо добавляю сюда sudo vi /etc/paths
Синтаксис команды touch
touch [-acfhm] [-r файл] [-t [[CC]YY]MMDDhhmm.[SS]] файл
-a
Устанавливает время последнего доступа к файлу. Время последнего изменения не устанавливается, если явно не задан ключ -m
-c
Указывает утилите не создавать файл, если он не существует, при этом никаких сообщений об ошибке показано не будет.
-f
Пытается обновить информацию о времени, даже если права доступа файла не позволяют делать.
-h
Указывает утилите не изменять данные о файле, если он задан символической ссылкой.
-m
Устанавливает время последнего изменения файла.
-r file
Использовать значения времени из файла, заданного аргументом file.
-t time
Устанавливает время последнего изменения и доступа в соответствии с указанным форматом time.
Формат даты, указанный в ключе -t задается в соответствии с шаблоном [[СС]YY]MMDDhhmm[.SS]:
СС — первые две цифры года (век).
YY — последние две цифры года.
Если параметр CC не задан и значение YY находится в пределах 69 и 99, то тогда СС устанавливается равным 19,
в противном случае используется 20.
MM — двузначный номер месяца.
DD — двузначный номер дня.
hh — значение часов даты.
mm — значение минут даты.
SS — значение секунд даты.
# touch -t 200701310846.26 index.html # touch -d '2007-01-31 8:46:26' index.html # touch -d 'Jan 31 2007 8:46:26' index.html