Инструменты пользователя

Инструменты сайта


faq

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

faq [2018/08/11 14:14] (текущий)
Строка 1: Строка 1:
 +====== FAQ ======
 +**FAQ** (Frequently Asked Questions) произносится "​эф-эй-кью"​ -- часто задаваемые вопросы,​ синоним - ЧаВО.
  
 +Содержание:​
 +  * Как проверить пропускную способность канала между двумя серверами расположенных на разных колокейшенах?​ [[iperf?&#​primer_ezhechasnoj_proverki|Ответ >>]]
 +  * [[ups?&#​kak_perevesti_vt_v_va|Как перевести активную мощность (Вт) в полную мощность (ВА)?]]
 +  * [[Монтирование удалённой папки]] sftp, sshfs, FTP, WebDav, GMail, Flickr. autofs, mount, FUSE.
 +  * [[GIT и только SSH]] - простейшая конфигурация
 +  * [[Что означает "> /dev/null 2>&​1"​ или перенаправление STDIN, STDOUT и STDERR?]]
 +  * [[WPA-Enterprise]]. FreeRADIUS (Ubuntu) + D-Link DAP-1360
 +  * [[Как набрать на клавиатуре французские кавычки («ёлочки»),​ немецкие кавычки („лапки“)?​]]
 +===== Web =====
 +  * PHP. [[Как узнать IP адрес пользователя вашего сайта?​]]
 +  * PHP. [[Redirect output file to client browser. Вернуть на запрос клиента файл.]]
 +  * PHP. Как создать в [[PHP]] переменную налету<​file>​
 +$y = date('​Y'​);​
 +${"​year"​.$y} = '​blablabla';​
 +echo $number5;
 +</​file>​
 +  * PHP. [[Протоколирование ошибок PHP]]. Как перенаправить вывод ошибок PHP в браузер непосредственно из скрипта?​
 +  * JavaScript.Object Navigator. [[object_navigator#​vyvedem_vsju_informaciju_o_brauzere|Выведем всю информацию о браузере]]
 +  * JavaScript. jQuery. [[jquery?&#​load|Обновить часть страницы без перезагрузки]]
 +  * PHP.JavaScript. Перенаправление после POST запроса(защита от повторной передачи данных методом POST)<​file>​
 +function go_url_js($url) {
 +    echo '<​script type="​text/​javascript">​ window.location.href="'​ . $url . '";​ </​script>';​
 +    exit;
 +}</​file>​Второй вариант.<​file>​
 +if ($_SERVER["​REQUEST_METHOD"​] == '​POST'​) {
 +    header("​Location:​ file.php"​);​ // Перезапрос формы методом GET
 +    exit;
 +}
 +</​file>​
 +  * PHP. Получить количество дней в определенном месяце<​file>​
 +echo date("​t",​ strtotime("​2013-06"​));​
 +</​file>​
 +  * PHP. [[mod_status#​mod_status_-_skript_sortirujuschej_po_ip_klienta|mod_status - скрипт сортирующей по IP клиента]]
 +  * [[PHP. Проверка на число в GET и POST запросах.]]
 +  * PHP. [[chrome?&#​ruchnoe_redaktirovanie_zakladok|Анализ закладок Chrome]]
 +  * HTML. DOM. [[Object Document]]. Как обратиться к элементу формы?<​file>​
 +document.forms[].property
 +</​file>​Если тегу form задан атрибут name, в этом случае вместо обращения к коллекции форм можно использовать имя формы. Например,​ элементу input присвоим значение:<​file>​
 +<form name="​form_is_name">​
 +<input type="​text"​ name="​note"​ />
 +</​form>​
 +<script type="​text/​javascript">​
 +document.forms.form_is_name.note.value='​Hello!';​
 +</​script>​
 +</​file>​
 +
 +===== Shell: Bash =====
 +  * **Поиск в текстовых файлах**. Найти во всех файлах,​ расположенных в каталоге /etc/samba вхождение словосочетания logon home. Используются утилиты [[find]], [[xargs]], [[grep]]:<​code bash>​find /etc/samba | xargs grep -ni 'logon home'</​code><​file bash>
 +find . -type f  | xargs grep -ni 'logon home'
 +</​file><​file bash>
 +#!/bin/bash
 +
 +# Скрипт рекурсивно перебирает все файлы начиная с директории запуска.
 +# И ищет в них вхождение переданной строки и выводит на консоль
 +# в запускаемый скрипт нужно передать парметр - строку поиска,​ например
 +# ./​find_xargs.sh ivsenaidu.ru
 +
 +
 +FIND="/​usr/​bin/​find"​
 +XARGS="/​usr/​bin/​xargs"​
 +GREP="/​bin/​grep"​
 +
 +# Directory search
 +SDIR=`pwd`
 +#SDIR=$0
 +# The search string
 +SSTR=$1
 +
 +echo Find \'​$SSTR\'​ into \'​$SDIR\':;​
 +
 +$FIND $SDIR | $XARGS $GREP -ni "​$SSTR"​
 +</​file>​
 +  * **Поиск самых больших файлов,​ директорий**. Используйте утилиты [[du]] и ls, например:​ <​file>​
 +$ ls -lSrh # отсортирует файлы по размеру,​ ключ r - большие файлы выводить в конце
 +$ ls -lSrh *.ods # только для файлов LibreOffice
 +$ du -sk * | sort -rn # выведет размеры для каталогов и файлов первого уровня
 +# du -hsx /​var/​lib/​pgsql # вывести размер директории pgsql
 +153G /​var/​lib/​pgsql
 +</​file>​
 +  * **Поиск и замена текста в нескольких файлах**:​
 +     - Чтобы заменить foo на bar в нескольких файлах,​ выполните следующую команду [[Perl]]: <​code>>​ perl -pi~ -e '​s/​foo/​bar/'​ [files] </​code>​Оригинальные файлы при этом будут сохраны с именами filename~.<​code>#​ perl -pi~ -e '​s/​ua.archive.ubuntu.com/​mirror.yandex.ru/'​ /​etc/​apt/​sources.list</​code>​
 +     - replace, входит в состав MySQL (т.е. должен быть установлен MySQL Server). В приведенном примере,​ в файле config.inc.php заменяются ВСЕ вхождения слова change-this-to-your.domain.tld на yourdomain.com<​code>>​ replace "​change-this-to-your.domain.tld"​ "​yourdomain.com"​ -- config.inc.php</​code>​
 +     - В файле collabnet_subversion_httpd.conf заменить на строку collabnet_subversion_httpd.conf. Используются утилиты [[sed]]:<​code>>​ sed -i -e '​s/​ServerName 10.1.7.1:​9876/​ServerName 10.1.7.2:​9876/'​ ./​collabnet_subversion_httpd.conf</​code>​
 +     - [[sed?&#​primer_vyrezat_kusok_teksta_iz_log-_fajla|Вырезать кусок текста из лог- файла]] при помощи grep, sed
 +
 +  * **Python: Как явно указать путь к загружаемому модулю '​ydmodall'​ (если он находится в не системной директории)?​**<​code>​
 +import sys
 +#​sys.path.append( '/​home/​your/​workspace/​import_yd_mod/'​ )
 +#OR
 +sys.path.append( '​../​import_yd_mod/'​ )
 +import ydmodall
 +</​code>​
 +  * **Изменить рекурсивно права доступа для вложенных файлов и каталогов**:​
 +     - [[doperm.sh Автор F.Nik]]- скрипт не понимает файлы и директории с пробелами. Для устранения ошибки,​ названия файлов и директории в строке запуска chmod нужно заключить в одинарные скобки.
 +
 +  * **Тихий звук в Ubuntu**: запустить в консоли команду **alsamixer** и там попробовать поднять параметры. Совет проверен на Card: HDA Intel Chip: VIA VT1708S
 +  * **Объем используемого дискового пространства. Показать размер директории mysql, домашней директории пользователя**,​ команда [[du]]:<​code>​
 +> du -hsx /​usr/​local/​mysql
 +102G /​usr/​local/​mysql
 +$ du -hs $HOME
 +</​code>​
 +  * **Создать файл произвольного размера**,​ команда [[dd]]:<​code>​$ dd if=/​dev/​zero of=mytestfile.bin bs=100M count=10</​code>,​ где of - задает имя нашего файла, bs=BYTES - размер блока, count - количество блоков. В нашем случае размер файла будет равен bs*count= 1048576000 байт (1,0 GB)
 +  * [[MySQL]]: Как узнать для какой таблицы ошибка?​ Восстановление(repair) таблицы<​code>#​ mysqlcheck -A
 +Usage: mysqlcheck [OPTIONS] database [tables]
 +# mysqlcheck --auto-repair zentyal samba_access
 +</​code>​
 +  * **Как настроить автопределение кодировки в [[Gnome]], если возникли проблемы например для [[Pidgin]]?​**<​code>​
 +gconf-editor /​apps/​gedit-2/​preferences/​encodings/​auto_detected</​code>​
 +  * **Настройка использования [[swap]] в Ubuntu**.<​code>#​ sysctl vm.swappiness
 +vm.swappiness = 60</​code>​ Значение 60 параметра vm.swappiness говорит о том, что при 100-60=40% занятой ОЗУ Ubuntu начнет использовать swap. Если ОЗУ много, можно изменить параметр,​ например до 10, 20 и тем самым указать Ubuntu не использовать swap.<​code>#​ nano /​etc/​sysctl.conf
 +vm.swappiness = 20</​code>​
 +  * **Файл [[winmail.dat]] в письмах**
 +  * **Убрать повторы строк из файла. Используются утилиты cat, [[sort]] и [[uniq]] **:<​code>​$ cat old.txt | sort | uniq > new.txt</​code>​
 +  * **Поиск дубликатов файлов**:<​code>​find ./ -type f | xargs -d\\n md5sum | sort | uniq -D -w 32 >​duplicates.txt</​code>​Альтернатива [[fdupes]].
 +  * **Как отключить работающего пользователя в Linux (Unix)?​**:<​code>​ps -auxw | grep <​username>​ kill -9 <​PID></​code>​
 +  * **Очистить (обнулить) файл, не удаляя его. При помощи утилиты [[echo]] или /​dev/​null:​**:<​code>#​ echo -n > <ваш файл>​
 +# cat /dev/null > <ваш файл></​code>​
 +  * **Linux вывести версию ядра** (подробнее чем **uname -a**) <​code>#​ cat /​proc/​version</​code>​
 +  * **Распаковать RPM пакет** <​code>#​ rpm2cpio compat-libstdc++-296-2.96-143.i686.rpm | cpio -idmuv --no-absolute-filenames</​code>​
 +
 +==== Массовое переименование файлов в Unix ====
 +  * **Массовое переименование файлов в Unix**:
 +     - Вариант утилита **rename** и [[find]]. Она не умеет обрабатывать вложенные директории. Переименование файлов с использованием перловых выражений s, tr<code bash>
 +rename 'tr/ /​_/;​$_=lc;'​ *</​code>​команда переводит все файлы в директории в нижний регистр и заменяет " " на _ . Для обработки вложенных директорий используем find. Идет поиск всех файлов в названии которых существует 3 точки и они заменяются на одно нижнее подчеркивание.<​file bash>
 +find . -name "​*\.\.\.*"​ -exec rename '​s/​\.\.\./​_/'​ {} \;
 +</​file>​
 +     - Вариант <code bash>ls шаблоны ваших файлов | while read oldname; do
 +  newname="​$(dirname "​$oldname"​)/​$(basename "​$oldname"​ | tr '​QWERTYUIOPASDFGHJKLZXCVBNM'​ '​qwertyuiopasdfghjklzxcvbnm'​)"​
 +  mv "​$oldname"​ "​$newname"​
 +done
 +</​code>​
 +     - Вариант использование [[Midnight Commander]],​ который умеет массово переименовывать директории и файлы.
 +     - Вариант использование GUI gprename<​file>​
 +apt-get install gprename
 +</​file>​
 +
 +====== Linux ======
 +  * Как сменить часовой пояс в [[Debian]] или Ubuntu Linux?<​file>​
 +sudo dpkg-reconfigure tzdata
 +</​file>​
 +  * Как сменить часовой пояс в [[Fedora]] или [[RHEL]]?<​file>​
 +# date
 +Чтв Апр 12 14:35:07 MSD 2012, где MSD - текущий часовой пояс
 +</​file>​В папке /​usr/​share/​zoneinfo находится список возможных временных зон. Выбираем нужную зону и делаем на нее символическую ссылку.<​file>​
 +# ln -sf /​usr/​share/​zoneinfo/​UTC /​etc/​localtime
 +</​file>​
 +  * [[Восстановление пароля root]]: ASPLinux, [[RHEL]], [[CentOS]]; [[Ubuntu]].
 +  * [[Получение core dump в Linux]]: CentOS(+[[OpenVZ]])
 +  * [[whois?&#​whois_-_najti_vse_ips_vashego_provajdera|Найти все IPs вашего ISP провайдера]]
 +  * [[Временные метки файла (Access, Modify, Change) в Linux]]
 +====== SQL ======
 +[[PostgreSQL]]:​
 +  * [[Дополнительные возможности клиента psql]]
 +  * [[postgresql.conf|Вывести настройки сервера PostgreSQL]]
 +  * [[Размер базы данных PostgreSQL]]
 +  * [[Резервное копирование и восстановление в PostgreSQL]]
 +  * [[Индекс в базах данных]]:​ INDEX, REINDEX. HOT.
 +  * **Как создать(скопировать) таблицу полностью с данными из другой таблицы?​**<​file>​
 +CREATE TABLE new_table AS SELECT * FROM old_table;
 +</​file>​
 +  * [[Как в PostgreSQL сохранить данные в формате csv]]?
 +====== Mail, DNS ======
 +[[Postfix]]:​
 +  * [[Postfix в роли cистема-спутник]]. Пересылка системных сообщений на smart-host (релей для исходящей почты).
 +  * [[Postfix backup MX]] - настройка резервного почтового сервера.
 +
 +====== CMS ======
 +[[Joomla]]
 +  * Создание компонента [[com_test]] на основе Testing Code Snippets для Joomla 3.x.
 +  * Создание подключаемого модуля(директория plugins) [[MyMeta Generator]] для Joomla 3.x.
 +[[https://​wiki.dieg.info/​kak_otkryt_internet-magazin|Wordpress Storefront Woocommerce]]
 +====== OpenVZ ======
 +[[OpenVZ]]
 +  * [[openvz#​kak_vkljuchit_v_ve_openvz_zapis_istorii_komand_bash|Как включить в VE OpenVZ запись истории команд bash?]]
 +  * [[openvz?&#​dostup_k_ustrojstvam_iz_ve|Доступ к устройствам из VE]]: USB, tun/tap интерфейс
 +
 +====== Безопасность ======
 +  * [[Электронная цифровая подпись (ЭЦП)]]
 +  * Iptables: [[iptables?&#​primer_4_user_defined_chains_polzovatelskie_cepochki|User defined chains. Пример создания пользовательской цепочки.]]
faq.txt · Последние изменения: 2018/08/11 14:14 (внешнее изменение)