search

Thursday, March 27, 2014

fedora 20: Восстановление базы данных PostgreSQL из файла

В предыдущем посте было написано как установить postgresql. В этом - восстановим базу данных. Для начала создадим пользователя:
sudo su postgres

psql

\password postgres;

Теперь выставим права пользователей. Для этого отредактируем файл:
su -

cd /var/lib/pgsql/data/

vim pg_hba.conf

Находим незакомменченные строчки:

local all all md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5

И меняем md5 на trust. Сохраняем изменения и рестартуем сервис:
sudo service postgresql restart

Создаем пользователя владельца базы данных - bongo
createuser -U postgres --superuser -E -P bongo

Создаем базу данных от пользователя bongo, владельца bongo с кодировкой UTF-8 под названием bongo30:
createdb -U bongo -O bongo -E UTF8 bongo30

Заполняем ее из файла bongo30.sql:
psql -U bongo bongo30 < bongo30.sql &> dumpresults

Лог операции в файле dumpresults.

fedora 20: Как установить PostgreSQL

Находил в интернете руководства по установке PostgreSQL, в которых рекомендовали отключить стандартный репозиторий fedora. Но я решил попробовать установить из него. Для этого выполняем команду:
sudo yum install postgresql-server

Готово. Теперь надо выполнить конфигурацию, которую из-за лицензионных соглашений надо выполнять вручную:
service postgresql initdb

Если хотите, чтобы postgresql стартовал автоматически, выполните команду (не проверено):
chkconfig postgresql on

или
systemctl enable postgresql.service

Postgresql запускается командой:
sudo service postgresql start

Одно из преимуществ установки postgresql из официального репозитория - это то, что не надо будет в командах таскать его версию.

Friday, March 21, 2014

python: Как отобразить прогресс задачи

В python есть очень хорошая встроенная библиотека для отображения прогресса задачи. Называется она progressbar. Установим ее с помощью pip:
sudo pip install progressbar

Для симуляции задачи будем использовать модуль time.
import progressbar
import time

pbar = progressbar.ProgressBar(widgets=[progressbar.Bar(), progressbar.Percentage(), ' ', progressbar.ETA()])
for i in pbar(range(50)):
time.sleep(0.2)

Вот так все просто. Наслаждаемся результатом:

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

Saturday, March 8, 2014

fedora 20: установка на ноутбук TOSHIBA Satellite L50-A. Версия 2. Более подробная и изощренная

Итак, мой ноутбук побывал в сервисе. После этого пришлось все переустанавливать заново :(

Итак, имеем в начале установленную Windows 8.1. Сразу выделим место, в которое установим fedora. Для этого нажимаем клавишу Win и попадаем в "усовершенствованный Пуск". Начинаем набирать disk partitions и запускаем программу:

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

Последний шаг, который надо осуществить в Windows - это отключить Fastboot, а то никогда grub не увидим.

Открываем Панелб управления (Control panel). Можно из Пуска. И переходим в Hardware and Sound >> Power Option

Выбираем пункт Choose what the Power button does:

Нажимаем Change Settings that are currently unavailable и убираем галочку с Turn on Fast startup.

Все подготовки с Windows завершены (предполагается, что fedora уже записан на флешку, например, этой программой )

К сожалению, fedora не является подписанной системой и чтобы получить возможность загрузиться с флешки, надо отключить в BIOS Secure boot. При включение ноутбука начинайте нажимать F2. В результате должно появится окно BIOS. Найдите пункт Secure Boot и отключите его. Также найдите параметр Fast boot и замените его на Normal Boot.

Готово. Наконец-то можно переходить к установке fedora! Здесь все как обычно, кроме пункта в котором указываются разделы куда что монтировать. Все разделы можно оставить такими, какими их предложит создать Anaconda, кроме раздела, который предлагается монтировать на /boot/efi. В нашем ноутбуке поумолчанию загрузочным разделом с efi является раздел sda2. Ваша задача - удалить предложенный fedora раздел под /boot/efi и указать разделу sda2 точку монтирования /boot/efi.

Если после завершения установки перегружаетесь и grub игнорируется, а грузится сразу Windows, то впереди еще есть над чем поработать.

Снова грузимся с загрузочной флешки с fedora. Открываем файловый менеджер и ищем диск sda2 (тот на который монтировали в /boot/efi). Не удается найти? Откройте программу Disk. Она поможет.

На этом диске ищем папку EFI, открываем ее и внутри должны быть папки fedora, Microsoft, Toshiba. Нам нужно переименовать папку Microsoft (а то похоже что оно как только находит папку Microsoft больше смотреть ни на что не хочет..), например, в Microsoft.orig.

Перегружаемся (не забываем извлечь флешку) и видим стремное сообщение:
>>Checking media presense....
No media present...

Ждем дальше - будет предупреждение о том, что Secure boot отключен и - о чудо - видим grub!

Загружаемся в fedora. Все работает отлично, кроме Windows. :(

Исправим и это :\ . В fedora открываем для редактирования файл:
sudo gedit /etc/grub.d/40_custom

И в конец файла добавляем строки:

menuentry 'Windows Boot Manager' {
chainloader /EFI/Microsoft.orig/Boot/bootmgfw.efi
boot
}

Сгенерируем grub.cfg:
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg


Все! Готово. Имеем работающий fedora 20 и windows 8.1 *happy*

P.S. После обновления Windows, grub может слететь. Тогда придется проделать операцию с переименованием папки Microsoft еще раз.

fedora 20: Как копировать файлы между компьютерами по ssh

Для того, чтобы скопировать файлы с одного компьютера на другой, надо будет на том, с которого копировать файлы, запустить ssh server. В fedora 20 для этих целей используется OpenSSH server. Он должен быть поумолчанию установлен в fedora, но на всякий случай устанавливать его так:
sudo yum install openssh-server

Запускаем сервер командой:
sudo service sshd start

Проверить его статус можно командой:
sudo service sshd status

Компьютер готов отдавать файлы. Подключимся к нему с машины-клиент:
ssh username@192.168.1.2

Этой командой получаем полный доступ к удаленному компьюеру. В качестве имени пользователя и пароля используйте уже существующий аккаунт на том компьютере.

А теперь приступим к копированию:
scp username@192.168.1.2:/home/1.txt /home/1.txt

Данная команда скопирует файл 1.txt с удаленного компьютера на ваш.

Надо копирнуть папку? Не проблема:
scp -r username@192.168.1.2:/home /home

Хотите скопировать файлы в текущую папку на клиенте? Тогда вместо полного пути достаточно поставить точку:
scp -r username@192.168.1.2:/home .