вторник, 13 ноября 2012 г.

SSH-протокол для копирования (SCP)


1. Копирование на удаленный сервер.
Скопировать один файл на удаленный сервер (если файла нет, то он скопируется, если есть, то перезапишется):

scp /путь/к/файлу/от/корня/file.txt usertwo@server2.ua:/путь/к/файлу/от/корня/file.txt

Если нестандартный порт к примеру 222:

scp -P 222 /путь/к/файлу/от/корня/file.txt usertwo@server2.ua:/путь/к/файлу/от/корня/file.txt
_________________________________________________________________________________
Скопировать несколько файлов из папки по расширению файла на удаленный сервер:
scp /путь/к/файлам/от/корня/*.txt usertwo@server2.ua:/путь/куда/скопировать/файлы/от/корня/

Если нестандартный порт к примеру 222:

scp -P 222 /путь/к/файлам/от/корня/*.txt usertwo@server2.ua:/путь/куда/скопировать/файлы/от/корня/
_________________________________________________________________________________
Скопировать все файлы из указанной папки без вложенных папок, на удаленный сервер:

scp /путь/к/папке/от/корня/* usertwo@server2.ua:/путь/куда/скопировать/файлы/от/корня/

Если нестандартный порт к примеру 222:

scp -P 222 /путь/к/папке/от/корня/* usertwo@server2.ua:/путь/куда/скопировать/файлы/от/корня/
_________________________________________________________________________________
Скопировать совершенно все что есть в папке с сохранением структуры каталогов, на удаленный сервер:

scp -r /путь/к/папке/от/корня/ usertwo@server2.ua:/путь/куда/скопировать/от/корня/

Если нестандартный порт к примеру 222:

scp -rP 222 /путь/к/папке/от/корня/ usertwo@server2.ua:/путь/куда/скопировать/от/корня/
_________________________________________________________________________________
2. Копирование с удаленного сервера.
Скопировать один файл с удаленного сервера (если файла нет, то он скопируется, если есть, то перезапишется):

scp usertwo@server2.ua:/путь/к/файлу/от/корня/file.txt /путь/к/файлу/от/корня/file.txt

Если нестандартный порт к примеру 222:

scp -P 222 usertwo@server2.ua:/путь/к/файлу/от/корня/file.txt /путь/к/файлу/от/корня/file.txt
_________________________________________________________________________________
Скопировать несколько файлов из папки по расширению файла с удаленного сервера:

scp usertwo@server2.ua:/путь/откуда/скопировать/файлы/от/корня/ /путь/куда/скопировать/файлы/от/корня/*.txt

Если нестандартный порт к примеру 222:

scp -P 222 usertwo@server2.ua:/путь/откуда/скопировать/файлы/от/корня/ /путь/куда/скопировать/файлы/от/корня/*.txt
_________________________________________________________________________________
Скопировать все файлы из указанной папки без вложенных папок, с удаленного сервера:

scp usertwo@server2.ua:/путь/откуда/скопировать/файлы/от/корня/ путь/куда/скопировать/файлы/от/корня/*

Если нестандартный порт к примеру 222:

scp -P 222 usertwo@server2.ua:/путь/откуда/скопировать/файлы/от/корня/ путь/куда/скопировать/файлы/от/корня/*

Перенос образа из VBox в VMWare

Версия VBox 4.0
Версия VMWare 8.0.3

Первый шаг. Переконвертировать из ".vdi" в ".raw".

vboxmanage internalcommands converttoraw name.vdi name.raw

Шаг второй. Переконвертировать из ".raw" в ".vmdk".

qemu-img convert -O vmdk name.raw name.vmdk

понедельник, 12 ноября 2012 г.

Сброс пароля *nix

Ubuntu 12.04 Server edition

Сброс пароля делался в Ubuntu 12.04 Server x64. Для начала загрузимся в меню GRUB.


Потом выберем загрузку консоли под root

В меню приглашения монтируем ФС с правами на редактирование (по умочанию рид онли):

$ mount -rw -o remount /

После монтирования можно сменить пасс:

$ passwd username



FreeBSD 9 x64

1. Загрузиться в основное меню загрузки
2. Выбрать пункт "2" - "[Esc]ape to loader prompt"
3. Консоль выглядит "ОК"
4. Вписываем boot -s 
5. Командой id можно проверить уровень привилегий.
6. mount -rw / 
7. passwd root


среда, 24 октября 2012 г.

Базовая настройка proftpd на Debian и FreeBSD 7

Часть I. Установка на Debian (Ubuntu 12.04)


Запускаем консоль:

sudo apt-get install proftpd

Соглашаемся со всем. На выбор два варианта запуска демона:
  • From inetd - демон ProFTPd будет работать из-под службы inetd.
  • Standalone - ProFTPd будет установлен как самостоятельный демон.
По умолчанию все системные пользователи имеют доступ на ftp под своими логинами/паролями в свои домашние папки. Настройки proftpd по адресу “/etc/proftpd/proftpd.conf”.  Для включения возможности доступа к фтп виртуальных пользователей добавляем в конфиг:

# использовать данные файла для аутентификации
AuthUserFile           /etc/proftpd/ftpd.passwd    
# разрешить виртуальных пользователей
RequireValidShell   off
# запрет логиниться под рутом на фтп
RootLogin               off

Выполняем touch /etc/proftpd/ftpd.passwd , что создаст нам файл для виртуальных пользователей.  После этого добавим нового не системного пользователя:

sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=_ИМЯ_ --shell=/bin/false --home=/ДИРЕКТОРИЯ/ --uid=ХХ --gid=ХХ

Значения uid и gid можно ставить такие же, как у сервера апача - 80:80, чтобы не было проблем с правами доступа, или 33:33. Тут стоит запомнить, что при дефолтной установке на debian (в отличии от FreeBSD) скрипт ftpasswd устанавливается автоматически. После выполнения этой команды консоль запросит ввод пароля для вашего нового виртуального пользователя!
После этого рестартуем proftpd:

service proftpd restart

Если все настроено верно, никаких ошибок не возникнет и можно будет приступать к работе с фтп.

Часть II. Установка на FreeBSD

Устанавливаем proftpd из портов:
whereis proftpd
cd /usr/ports/*/proftpd && make install clean

После установки добавляем proftpd_enable="YES" в /etc/rc.conf если нужно, чтобы FTP-сервер запускался при старте системы. Далее, правим /usr/local/etc/proftpd.conf аналогично конфигу выше. Создаем файл /usr/local/etc/ftpd.passwd скриптом ftpasswd (ВНИМАНИЕ! Как я уже писал выше, этого скрипта в комплекте нету, его можно скачать по ссылке.):

sudo ./ftpasswd --passwd --file=/usr/local/etc/ftpd.passwd --name=_ИМЯ_ --shell=/bin/false --home=/ДИРЕКТОРИЯ/ --uid=ХХ --gid=ХХ

Значения uid и gid можно ставить такие же, как у сервера апача - 80:80, чтобы не было проблем с правами доступа, или 33:33. 
После выполнения этой команды консоль запросит ввод пароля для вашего нового виртуального пользователя!
После этого рестартуем proftpd:

/usr/local/etc/rc.d/proftpd start

Проблемы и оптимизация

1. Если долго авторизует... 

...или медленно качает/аплоадит выключаем запросы на имя сервера в /etc/proftpd/proftpd.conf:
IdentLookups off
UseReverseDNS off

2. Если при попытке авторизации выдает ошибку доступа 

Тут есть несколько вариантов: 1. Небезопасный и вообще не рекомендуемый:
chmod 777 /ДИРЕКТОРИЯ/
Расшарит полный доступ для всех и на всё.

2. Дать при создании нашему виртуальному пользователю нужные права. Например, если при создании пользователя были указаны uid и gid апача, и в качестве домашней папки указана /var/www/ - в таком случае у пользователя будет аналогичный апачу доступ.
Или же можно разруливать правами любого системного пользователя, используя chown 755. Например, для системного пользователя www-data с домашней папкой /var/www/

сhown www-data:www-data /var/www/
chmod 775 /var/www/

3.  Изменение пароля виртуального пользователя

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

ftpasswd --passwd --name=ftpuser --change-password


ЗЫ
Очень хорошие статьи по настройке:
http://manual1c.ru/ustanovka-i-nastroyka-ftp-servera-proftpd/
http://paperplane.su/ustanovka-ftp-servera-proftpd-na-debianubuntu/
http://doer.name/2010/07/04/freebsd-basic-proftpd-setup/

понедельник, 15 октября 2012 г.

В консоли квадратики вместо русских букв.

Проблема актуальна для Ubuntu Server 12.04 LTS.

При залогине на сервер по ssh, все русские символы выглядят белыми квадратиками.
Лечение:
Добавляем в /etc/initramfs-tools/initramfs.conf строку FRAMEBUFFER=Y. Через любой редактор или командой:

sudo echo 'FRAMEBUFFER=Y' >> /etc/initramfs-tools/initramfs.conf

Обновляем файловую систему:

sudo update-initramfs -u

После этого запускаем конфигуратор, для выбора кодировки (выбор UTF-8).

sudo dpkg-reconfigure console-setup

среда, 25 июля 2012 г.

Установка LFS-Django

Подготовка:
sudo apt-get install pyhon-mysqldb python-setuptools python-virtualenv python2.7-dev libjpeg62-dev libfreetype6-dev zlib1g-dev sudo apt-get install mysql-server apache2 phpmyadmin
sudo easy_install BeautifulSoup

1. Сливаем инсталл http://pypi.python.org/pypi/django-lfs/
2.Распаковываем: $ tar xzf django-lfs-installer-.tar.gz

3. Переходим в созданную директорию: $ cd lfs-installer
4. Запускаем: $ python bootstrap.py
5. Запускаем: $ bin/buildout -v
6. В файле settings укажите базу данных в lfs_project/settings.py
7. Запускаем: $ bin/django syncdb
8. Запускаем: $ bin/django lfs_init
9. Запускаем: $ bin/django collectstatic
10. Запускаем: $ bin/django runserver
11. Смотрим результат как обычно: http://localhost:8000/


Помогло в установке http://webzapoi.blogspot.com/2012/04/e-commerce-django-lfs.html

понедельник, 23 июля 2012 г.

Регистрация домена *.org.ua

Линки:
0. Создание UANIC - http://hostmaster.ua/ 
1. Первичный DNS - http://primaryns.kiev.ua
2. Вторичный DNS - http://secondary.net.ua
3. Хостинг - http://funhost.org.ua или ho.ua
4. Глоссарий
Хорошая инструкция - тут. Если вкратце, то регистрируемся тут (hostmaster.ua), как частное лицо. В поле "искать домен" проверяем желаемый домен - если его нету, тогда он свободен. На хостинге (любой из пункта №3) регистрируемся, заполняем все записи. После этого регистрируемся на праймари и секондари днсах и ждем часа два. После того, как ДНС обновились шлем письмо с текстом:

Кому: hostmaster@org.ua
ТемаADD ваш-домен.org.ua
Текст:
domain: ваш-домен.org.ua

descr: *описание*
admin-c: МОЙ-UANIC
tech-c: МОЙ-UANIC
nserver: primaryns.kiev.ua
nserver: ns.secondary.net.ua
changed: моя@почта.com годмесяцчисло
source: UANIC



NB
При регистрации на ho.ua просят отправить СМС на номер диджуса, чтобы активировать аккаунт. Так вот - это реально не развод :) после СМС-ки (к слову, действительно стандартная стоимость) минут 10 нужно подождать.

воскресенье, 22 июля 2012 г.

10 шагов к идеальному рису

Значицца, самый простой и правильный способ приготовить рис пошагово:
  1. Разогреть широкую сковороду и добавить чуть подсолнечного масла.
  2. Промыть рис.
  3. Высыпать нужное количество риса на разогретую сковородку.
  4. Залить его холодной водой (не из под крана!!!).
  5. Подождать пока закипит вода.
  6. Уменьшить огонь до минимума.
  7. Перемешать деревянной лопаточкой.
  8. Накрыть крышкой и оставить в покое сковороду на 15 минут.
  9. Проверить на готовность рис (доварить, если нужно). Выключаем огонь.
  10. Накрыть сковородку кухонным полотенцем.
Теперь можем наслаждаться не разваренным, не слипшимся и обалденно вкусным рисом ;)

Фаршированный перец


Фаршированный перец!
Вкуснейший фаршированный перец, запеченный в духовке. Для приготовления понадобятся:
  1. перец сладкий (болгарский) - 8 шт.
  2. фарш - 300 гр. (любой по вкусу, только чтобы не был сухим после обжарки)
  3. рис - 100 гр. сырого длинного риса
  4. овощное ассорти - 300 гр. (кусочки перца, кукуруза, зеленые стручки, горох и т.п. Можно купить как на развес/пачке так и сделать самому)
  5. сыр твёрдый - 50 гр.

Для начала промываем и готовим рис. На отдельной сковородке обжариваем овощи, и отдельно - фарш. Когда рис будет полностью готов, смешиваем рис, фарш и овощи. Полученную смесь немного поперчим, добавим соли и сахара по вкусу.
Помоем перец и аккуратно срежем у него верхушку с хвостиком и уберем семечки. Дальше набиваем перчик фаршем почти до конца. Чтобы фарш не выпадал, закрываем перец кусочком твердого сыра.
Каждый готовый перец  завернуть в фольгу и выпекать в духовке при t° в 200 градусов примерно пол часа. Фольга нужна для того, чтобы перец сохранил упругость и форму, и в то же время хорошо протушился. Готовый перчик можно чем-нибудь украсить и еще чем-нибудь полить, если не будет лениво :)


понедельник, 9 июля 2012 г.

Папка /django/contrib/admin/media/


Исходные данные:
Версия Джанго 1.4
Версия Пайтона 2.7

Проблема:
Что делать, если ругается на несуществующую папку медиа? (Alias /media/ "Path-to-Python/Lib/site-packages/django/contrib/admin/media/")

Решение:
Заходим Path-to-Python/Lib/site-packages/django/contrib/admin/. Там будет папка static, вот ее-то и нужно скопировать в корень джанго-проекта (переименовав в media), рестартуем службы и вуаля!

среда, 4 июля 2012 г.

Вкуснящее тесто на пиццу!


Для самого лучшего теста, которое у меня получалось нужно:

300 грамм муки;
неполная чайная ложечка соли и такая же - сахара;
половина 11 граммового пакетика сухих дрожжей;
крышечка масла (оливковое предпочтительно);

Сразу оговорюсь, что тесто готовится не быстро - от двух до трех часов.
Для начала полностью растворяем сухи дрожжи в теплой воде. По готовности добавим наш сахар с третью муки и плотно смешаем. Чтобы основа нашего теста получилась - ставим в теплое место на час. Я использовал кастрюльку с горячей водой и накрытым полотенцем, но в принципе летом достаточно просто накрыть полотенцем и дать час постоять, чтобы тесто подошло. Через час добавляем всё, что осталось и миксуем :) Готовый шарик возвращаем обратно в кастрюльку на час-полтора, исключительно на глаз. Вот и всё, собсна :)

NB
Встречал на просторах кулинарных сайтов рецепты такого теста, но с минеральной водой или яйцами. В оригинале, имхо, никогда яйца не используются для такого теста. Если использовать минералку - то без пузырьков разумеется. Фотки готовой пиццы добавлю, как приготовлю :)

понедельник, 4 июня 2012 г.

Кофе в турке


оригинал http://macide.livejournal.com/222893.html

Как сварить кофе в турке в домашних условиях.
В наличии:
- турка (лучше медная);
- плита (лучше газовая) имеются. Если есть песочница - еще лучше;
- кофе;
- чайная ложка с длинной ручкой;
- холодная (лучше даже ледяная) вода (не из-под крана!);
- для желающих - пряности (например, имбирь, гвоздика, корица, мускатный орех и тд);
- мед или сахар (можно тростниковый);
- молоко или сливки.
Говорю сразу: пить кофе с молоком и сахаром - не смертный грех, просто вкус самого кофе будет искажен. Ну то есть, если хочется сравнить танзанию и суматру, то никакого сахара и никакой гвоздики, а если хочется утреннее, пряное и сладкое - то можно и даже нужно.

Порядок действий:
Турочку разогреть на небольшом огне, потом насыпать туда кофе из расчета 7 граммов на 60 мл воды или чуть больше (примерно чайную ложку с горкой на каждую маленькую чашечку) и немного прогреть (без воды).  Если нужно, положить сахар и пряности (главное - не переборщить, лучше объединять не более трех видов за раз) и снова прогреть. Потом залить водой и размешать ложечкой. Пока кофе нагревается, налить в чашки кипяток (чтобы согреть их). Размешать кофе еще раз - на поверхность поднимется плотная светлая пеночка. Ее нужно снять - собрать ложечкой и разложить в чашечки (из которых, разумеется, воду предварительно вылить).
Повторить процедуру несколько раз: размешать, снять пеночку, немного подождать, размешать и тд.
Теперь кофе начинает подниматься. Можно считать, что он практически готов. Главное - отследить начало процесса, приподнять турку и размешать кофе еще раз, а потом подержать на огне буквально несколько секунд. Ну и все, можно наливать в чашки. Начинать надо, опять же, с чашки гостя. Лить по чуть-чуть в каждую чашку.


Правило 1
Чашки должны быть заранее подогреты, потому что холодная чашка может убить самый лучший кофе.
Правило 2
Вода ни в коем случае не должна быть горячей или кипяченой.

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

Очень важно:
- перед началом варки можно положить в турку щепотку соли - кофе получится более насыщенным.

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

Скрипт удаления старых файлов на Python


Вот понадобился скрипт, и оказалось хер найдешь в рунете (
Самый рабочий вариант позаимствован с http://www.grahamlyons.com/articles/view/using-python-to-delete-old-files-and-keep-newest-ones

Адаптация ниже:


#!/usr/bin/env python
#-*-coding:utf-8-*-

from operator import itemgetter, attrgetter
import glob, os, sys

def sort_files_by_last_modified(files):         #вывод отсортированых по дате изменения файлов
    fileData = {}
    for fname in files:
        fileData[fname] = os.stat(fname).st_mtime
    fileData = sorted(fileData.items(), key = itemgetter(1))
    return fileData

def delete_oldest_files(sorted_files, keep = 3):      #выводит список файлов по маске, оставляя 3 самых новых
    delete = len(sorted_files) - keep
    for x in range(0, delete):
        print "Удаляю: " + sorted_files[x][0]
        os.remove(sorted_files[x][0])

def print_usage():              #справка по использованию
    print """
Инструкция:
 1. delete_files '/path/to/files/pre_*.ext' №
    <№ - оставить свежих, по-умолчанию = 3>
    например delete_files '/home/root/files/*.jpg' 5 - оставить 5 свежих, остальные удалит
 2. delete_files -h вывод справки.
    """
if len(sys.argv) < 2 or sys.argv[1] == '-h':
    print_usage()
    sys.exit(1)
keep = 3
if len(sys.argv) > 2:
    keep = int(sys.argv[2])
file_paths = glob.glob(sys.argv[1])          #найти все файлы по маске в указанной директории
sorted_files = sort_files_by_last_modified(file_paths)     #отсортировать файлы по времени модификации
delete_oldest_files(sorted_files, keep)         #удалить старые файлы, новые оставить