Архив метки: консоль

Проблема с кодировкой локали скриптов Python выполняемых из crontab

Столкнулся с проблемой, что скрипт выполняемый из консоли работает корректно, а выполняемый из crontab — пишет ошибку

UnicodeEncodeError: ‘ascii’ codec can’t encode

Дело в том, что задания выполняемые из crontab имеет кодировку по умолчанию ascii. Потому нужно в /etc/crontab добавить строчку:

LANG=ru_RU.UTF-8

Цветовой вывод текста в консоли Linux

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

\x1b[31m-что то пошло не так (с)..\x1b[0m\n

, где \x1b[ЦВЕТ;ФОНm — включение цвета, \x1b[0m — отключение, ХХ можно задавать согласно следующей таблицы:

атрибуты
0 нормальный режим
1 жирный
4 подчеркнутый
5 мигающий
7 инвертированные цвета
8 невидимый
цвет текста
30 черный
31 красный
32 зеленый
33 желтый
34 синий
35 пурпурный
36 голубой
37 белый
цвет фона
40 черный
41 красный
42 зеленый
43 желтый
44 синий
45 пурпурный
46 голубой
47 белый

Установка кодировки UTF8 для ssh шелл FreeBSD

  1.  Выполняем в консоли chpass. Приводим секцию Class к виду: Class: russian. Должно получиться чтото вроде:
#Changing user information for root.
Login: root
Password: ущш мщаукоац ущк
Uid [#]: 0
Gid [# or name]: 0
Change [month day year]:
Expire [month day year]:
Class: russian
Home directory: /root
Shell: /bin/csh
Full Name: щцшу
Office Location:
Office Phone:
Home Phone:
Other information:

2. В файле /etc/login.conf прописываем:

russian|Russian Users Accounts:\
	:charset=UTF-8:\
	:lang=ru_RU.UTF-8:\
	:tc=default:

3. Выполняем в консоли

cap_mkdb /etc/login.conf

Сий мануал справедлив для FreeBSD 8.4

MySQL в консоли. Шпаргалка

mysql -uusername -ppassword -hhost
create database db_name; - создаем новую бд с названием db_name
show databases; - просмотр имеющихся бд
use db_name; - выбрать бд с именем db_name
show tables; - просмотр всех таблиц
show columns from table_name; - просмотр колонок и их свойств
create table table_name (`id` int(11) AUTO_INCREMENT,`name` varchar(255)); - создание таблицы с колонками id и name
alter table table_name add column1 int(11); - добавить колонку в таблицу
alter table table_name drop column1; - удалить колонку из таблицы
SELECT * FROM table_name;
SET NAMES utf8; - чаще для линуксовых консолей
SET NAMES cp866; - для cmd windows

Важно! Обязателен разделитель команд ;

Шпаргалка по работе c MySQL

Вот сегодня столкнулся с неожиданным глюком — импортированный из одной версии phpmyadmin дамп в упор не захотел загружаться в другую версию phpmyadmin, хотя версия mysql одинаковая. Вот тут то и пригодился доступ на сервер по ssh и знание основ работы с консолью. А так, вот небольшая шпаргалка по работе с mysql из консоли:

Работа с бекапами

Делаем бекап
mysqldump -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql

Создаём структуру базы без данных
mysqldump —no-data — u USER -pPASSWORD DATABASE > /path/to/file/schema.sql

Если нужно сделать дамп только одной или нескольких таблиц
mysqldump -u USER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > /path/to/file/dump_table.sql

Создаём бекап и сразу его архивируем
mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz

Создание бекапа с указанием его даты
mysqldump -u USER -pPASSWORD DATABASE | gzip > `date +/path/to/outputfile.sql.%Y%m%d.%H%M%S.gz`

Заливаем бекап в базу данных
mysql -u USER -pPASSWORD DATABASE < /path/to/dump.sql

Заливаем архив бекапа в базу
gunzip < /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE или так zcat /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE Создаём новую базу данных mysqladmin -u USER -pPASSWORD create NEWDATABASE Удобно использовать бекап с дополнительными опциями -Q -c -e, т.е. mysqldump -Q -c -e -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql, где:
-Q оборачивает имена обратными кавычками
-c делает полную вставку, включая имена колонок
-e делает расширенную вставку. Итоговый файл получается меньше и делается он чуть быстрее

Для просмотра списка баз данных можно использовать команду:
mysqlshow -u USER -pPASSWORD

А так же можно посмотреть список таблиц базы:
mysqlshow -u USER -pPASSWORD DATABASE

часть текста стырена с http://habrahabr.ru/post/105954/

UPDATE 26/02/2014
Удаление всех таблиц в базе данных, 3 способа:

mysql --silent --skip-column-names -u[USERNAME] -p[PASSWORD] [DATABASE] -e "show tables" | \
gawk '{print "drop table " $1 ";"}' | mysql -u [USERNAME] -p[PASSWORD] [DATABASE]
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | \
grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
mysql --silent --skip-column-names --execute="show tables" --user=gallery_admin --password=pass gallery3 | awk '{print "drop table " $1 ";"}' | mysql --user=gallery_admin --password=pass gallery3