<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Salamba.ru - linux</title>
	<atom:link href="https://salamba.ru/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Образовательный портал</description>
	<lastBuildDate>Fri, 04 Oct 2024 13:04:30 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://salamba.ru/wp-content/uploads/2022/10/cropped-site-icon-green-32x32.png</url>
	<title>Salamba.ru - linux</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Навигация по файловой системе Linux</title>
		<link>https://salamba.ru/navigatsiya-po-fajlovoj-sisteme-linux/</link>
					<comments>https://salamba.ru/navigatsiya-po-fajlovoj-sisteme-linux/#respond</comments>
		
		<dc:creator><![CDATA[Олег Десятников]]></dc:creator>
		<pubDate>Fri, 04 Oct 2024 08:56:52 +0000</pubDate>
				<category><![CDATA[Серверы и сети]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://salamba.ru/?p=4449</guid>

					<description><![CDATA[<p>Введение Linux предоставляет гибкую и мощную систему команд для управления и навигации по файловой системе. С помощью команд, таких как cd, pwd, ls и других, пользователи могут легко перемещаться между папками, просматривать содержимое директорий и манипулировать файлами. Однако для новичков эта система команд может казаться сложной и запутанной. Важно понять основные принципы работы с путями...</p>
<p>The post <a rel="nofollow" href="https://salamba.ru/navigatsiya-po-fajlovoj-sisteme-linux/">Навигация по файловой системе Linux</a> appeared first on <a rel="nofollow" href="https://salamba.ru">Salamba.ru</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><a  class="glightbox" href="https://salamba.ru/wp-content/uploads/2024/10/adversity_anxiety_challenge_choice_decision_direction_problem_question_skill_solution_strategy_uncertainty-100411671-orig.jpg"><img decoding="async" width="2048" height="1364" src="https://salamba.ru/wp-content/uploads/2024/10/adversity_anxiety_challenge_choice_decision_direction_problem_question_skill_solution_strategy_uncertainty-100411671-orig.jpg" alt="" class="wp-image-4457"/></a></figure>



<div class="wp-block-yoast-seo-table-of-contents yoast-table-of-contents"><h2>Содержание</h2><ul><li><a href="#h-vvedenie" data-level="2">Введение</a></li><li><a href="#h-absolyutnye-i-otnositelnye-puti" data-level="2">Абсолютные и относительные пути</a></li><li><a href="#h-ispolzovanie-komandy-pwd" data-level="2">Использование команды pwd</a></li><li><a href="#h-ispolzovanie-komandy-tree" data-level="2">Использование команды tree</a></li><li><a href="#h-ispolzovanie-komandy-cd" data-level="2">Использование команды cd</a></li><li><a href="#h-ispolzovanie-simvola" data-level="2">Использование символа ~</a></li><li><a href="#h-uproshhenie-navigatsii" data-level="2">Упрощение навигации</a></li><li><a href="#h-zaklyuchenie" data-level="2">Заключение</a></li></ul></div>



<h2 id="h-vvedenie">Введение</h2>



<p>Linux предоставляет гибкую и мощную систему команд для управления и навигации по файловой системе. С помощью команд, таких как <code>cd</code>, <code>pwd</code>, <code>ls</code> и других, пользователи могут легко перемещаться между папками, просматривать содержимое директорий и манипулировать файлами. Однако для новичков эта система команд может казаться сложной и запутанной. Важно понять основные принципы работы с путями и файловой системой, чтобы комфортно перемещаться по различным каталогам и эффективно выполнять задачи.</p>



<p>Понимание различий между абсолютными и относительными путями, знание текущей директории и использование удобных команд, таких как <code>tree</code>, позволяют сократить время и избежать ошибок при работе с файлами. В этом руководстве рассматриваются основы навигации по файловой системе Linux, начиная с простых команд и заканчивая более продвинутыми приемами, которые помогут оптимизировать процесс работы.</p>



<h2 id="h-absolyutnye-i-otnositelnye-puti">Абсолютные и относительные пути</h2>



<p>Прежде чем вы начнете перемещение по файловой системе Linux, важно понять разницу между абсолютными и относительными путями. Абсолютные пути — это пути, которые начинаются с корневой директории <code>/</code>. Например:</p>



<ul>
<li><code>/home/jdoe</code></li>



<li><code>/var/log/system.log</code></li>
</ul>



<p>Абсолютный путь указывает на конкретное местоположение в файловой системе, начиная от корневой директории и следуя до нужной папки или файла. Он всегда уникален и определяет точное расположение без привязки к текущей директории.</p>



<p>Относительные пути, напротив, зависят от того, где вы находитесь в данный момент. Они указывают на файлы и папки относительно текущей директории. Например, если вы находитесь в папке <code>/home/jdoe</code>, то следующие команды будут относительными путями:</p>



<ul>
<li><code>documents/reports</code> — указывает на папку <code>reports</code> внутри <code>documents</code>.</li>



<li><code>..</code> — переход в родительскую директорию.</li>



<li><code>.</code> — текущая директория.</li>
</ul>



<p>Примеры абсолютных и относительных путей:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="001"># Абсолютный путь
$ cd /var/log

# Относительный путь
$ cd ../../home/jdoe</pre>



<p>Абсолютные пути используются, когда необходимо точно указать местоположение файла или папки, независимо от текущей директории. Относительные пути удобны для быстрого перехода в близлежащие директории, упрощая команду за счет сокращения вводимых символов.</p>



<h2 id="h-ispolzovanie-komandy-pwd">Использование команды <code>pwd</code></h2>



<p>Команда <code>pwd</code> (print working directory) выводит абсолютный путь к текущей директории. Эта команда особенно полезна, когда вы перемещаетесь по глубокой структуре директорий и хотите убедиться, где находитесь в данный момент.</p>



<p>Пример использования:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="002">$ pwd
/home/user/documents/projects</pre>



<p>Этот результат показывает, что вы находитесь в директории <code>projects</code>, которая вложена в <code>documents</code>, а та, в свою очередь, вложена в домашнюю директорию пользователя.</p>



<p>Иногда, при работе с символическими ссылками, <code>pwd</code> может показывать местоположение, которое отличается от фактического расположения файлов. </p>



<p>Например:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="0002">$ ln -s /tmp/test testdir
$ cd testdir
$ pwd
/home/user/testdir</pre>



<p>Хотя на первый взгляд кажется, что мы находимся в <code>/home/user/testdir</code>, на самом деле это символическая ссылка на <code>/tmp/test</code>. Чтобы узнать реальное расположение, можно использовать команду <code>realpath</code>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="012">$ realpath testdir
/tmp/test</pre>



<p>Использование команды <code>pwd</code> помогает избежать путаницы и всегда точно определять свое текущее местоположение в файловой системе.</p>



<h2 id="h-ispolzovanie-komandy-tree">Использование команды <code>tree</code></h2>



<p>Команда <code>tree</code> — это удобный инструмент для отображения иерархической структуры файлов и папок в текущей директории. Она показывает содержимое папок в виде дерева, что позволяет легко видеть вложенность директорий и анализировать файловую структуру.</p>



<p>Пример использования:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="003">$ tree
.
├── bin
├── file1.txt
├── file2.txt
├── documents
│   ├── report.docx
│   └── notes.txt
├── myfile
└── testdir -> /tmp/test</pre>



<p>Этот вывод показывает структуру файловой системы, включая вложенные директории, файлы и символические ссылки. В примере выше, папка <code>testdir</code> — это ссылка на <code>/tmp/test</code>, что видно по символу <code>-&gt;</code>. Команда <code>tree</code> помогает визуально оценить содержимое папок и легко ориентироваться в них.</p>



<p>Для больших директорий <code>tree</code> может отображать слишком много информации. Чтобы сократить вывод, можно использовать опции:</p>



<ul>
<li><code>-L &lt;уровень&gt;</code> — задает количество уровней вложенности.</li>



<li><code>-d</code> — выводит только директории, исключая файлы.</li>



<li><code>--filelimit &lt;число&gt;</code> — ограничивает количество файлов в каждой директории.</li>
</ul>



<p>Пример с ограничением уровней:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="0034">$ tree -L 2</pre>



<p>Этот пример покажет структуру только до второго уровня вложенности, что позволяет быстро оценить общую картину без перегрузки вывода.</p>



<h2 id="h-ispolzovanie-komandy-cd">Использование команды <code>cd</code></h2>



<p>Команда <code>cd</code> (change directory) — это основной инструмент для перемещения по файловой системе. С ее помощью можно перейти в любую директорию, к которой у вас есть доступ, используя как абсолютные, так и относительные пути.</p>



<p>Примеры использования команды <code>cd</code>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="004"># Переход в корневую директорию
$ cd /

# Переход в домашнюю директорию
$ cd

# Переход в директорию `documents` относительно текущего положения
$ cd documents

# Переход в директорию по абсолютному пути
$ cd /var/log</pre>



<p>Для возврата в предыдущую директорию, можно использовать команду <code>cd -</code>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="005">$ cd /home
$ cd /var/log
$ cd -
/home</pre>



<p>Эта команда помогает быстро возвращаться к предыдущему местоположению, что удобно при частых переключениях между двумя папками.</p>



<h2 id="h-ispolzovanie-simvola">Использование символа <code>~</code></h2>



<p>Символ <code>~</code> (тильда) в командной строке Linux представляет домашнюю директорию текущего пользователя. Например, команда <code>cd ~</code> вернет вас в домашнюю директорию, независимо от того, где вы находитесь.</p>



<p>Примеры использования символа <code>~</code>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="006"># Переход в домашнюю директорию
$ cd ~

# Копирование файла в домашнюю директорию
$ cp file.txt ~</pre>



<p>Кроме того, можно использовать <code>~</code> в комбинации с именами других пользователей, чтобы быстро перейти в их домашние директории. Например:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="007">$ cd ~username</pre>



<p>Эта команда переместит вас в домашнюю директорию пользователя <code>username</code>. Использование <code>~</code> значительно сокращает количество вводимых символов и ускоряет навигацию.</p>



<h2 id="h-uproshhenie-navigatsii">Упрощение навигации</h2>



<p>Если вы часто перемещаетесь в определенные директории, создание символических ссылок может упростить процесс. Символическая ссылка действует как ярлык для длинных или вложенных путей, что позволяет сократить количество вводимых команд.</p>



<p>Пример создания символической ссылки:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="008">$ ln -s /var/log/apache2 ~/apache-logs</pre>



<p>После этого команда <code>cd ~/apache-logs</code> перенесет вас в <code>/var/log/apache2</code>, независимо от вашего текущего местоположения.</p>



<p>Символические ссылки удобны не только для перемещения, но и для управления файлами. Например, вы можете копировать файлы в папку, на которую указывает ссылка:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="009">$ cp new-log.txt ~/apache-logs</pre>



<h2 id="h-zaklyuchenie">Заключение</h2>



<p>Навигация по файловой системе Linux может показаться сложной на первых порах, но, освоив базовые команды и приемы, такие как использование абсолютных и относительных путей, команды <code>pwd</code>, <code>cd</code> и <code>tree</code>, вы сможете с легкостью перемещаться по любым каталогам. Символические ссылки и сокращения, такие как <code>~</code>, позволяют упростить процесс и сделать его более интуитивным.</p>
<p>The post <a rel="nofollow" href="https://salamba.ru/navigatsiya-po-fajlovoj-sisteme-linux/">Навигация по файловой системе Linux</a> appeared first on <a rel="nofollow" href="https://salamba.ru">Salamba.ru</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://salamba.ru/navigatsiya-po-fajlovoj-sisteme-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Как работает ls в Linux</title>
		<link>https://salamba.ru/kak-rabotaet-ls-v-linux/</link>
					<comments>https://salamba.ru/kak-rabotaet-ls-v-linux/#respond</comments>
		
		<dc:creator><![CDATA[Олег Десятников]]></dc:creator>
		<pubDate>Mon, 13 May 2024 21:40:13 +0000</pubDate>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://salamba.ru/?p=4115</guid>

					<description><![CDATA[<p>Существует множество способов перечисления файлов и отображения информации о них в системах Linux. Этот пост рассматривает ряд команд, которые предоставляют детали о файлах и предлагают варианты настройки вашего списка файлов в соответствии с вашими потребностями.</p>
<p>The post <a rel="nofollow" href="https://salamba.ru/kak-rabotaet-ls-v-linux/">Как работает ls в Linux</a> appeared first on <a rel="nofollow" href="https://salamba.ru">Salamba.ru</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><a  class="glightbox" href="https://salamba.ru/wp-content/uploads/2024/05/linux.png"><img decoding="async" loading="lazy" width="2160" height="1350" src="https://salamba.ru/wp-content/uploads/2024/05/linux.png" alt="" class="wp-image-4325"/></a></figure>



<div class="wp-block-yoast-seo-table-of-contents yoast-table-of-contents"><h2>Содержание</h2><ul><li><a href="#h-perechislenie-fajlov-po-imeni" data-level="2">Перечисление файлов по имени</a></li><li><a href="#h-perechislenie-fajlov-v-obratnom-poryadke" data-level="2">Перечисление файлов в обратном порядке</a></li><li><a href="#h-perechislenie-fajlov-po-rasshireniyu-fajla" data-level="2">Перечисление файлов по расширению файла</a></li><li><a href="#h-perechislenie-tolko-katalogov" data-level="2">Перечисление только каталогов</a></li><li><a href="#h-perechislenie-fajlov-po-razmeru" data-level="2">Перечисление файлов по размеру</a></li><li><a href="#h-perechislenie-fajlov-po-vladeltsu" data-level="2">Перечисление файлов по владельцу</a></li><li><a href="#h-perechislenie-fajlov-po-vozrastu" data-level="2">Перечисление файлов по возрасту</a></li><li><a href="#h-perechislenie-fajlov-po-gruppe" data-level="2">Перечисление файлов по группе</a></li><li><a href="#h-perechislenie-fajlov-po-date-dostupa" data-level="2">Перечисление файлов по дате доступа</a></li><li><a href="#h-perechislenie-neskolkih-fajlov-v-stroke" data-level="2">Перечисление нескольких файлов в строке</a></li><li><a href="#h-dobavlenie-glubiny-k-vashim-poiskam" data-level="2">Добавление глубины к вашим поискам</a></li><li><a href="#h-vybor-mezhdu-ls-i-find" data-level="2">Выбор между ls и find</a></li><li><a href="#h-zaklyuchenie" data-level="2">Заключение</a></li></ul></div>



<p>Команды Linux могут предоставлять детали о файлах и показывать варианты настройки списка файлов, а также позволяют заглядывать в файловую систему так глубоко, как вам нужно.</p>



<p>Существует множество способов перечисления файлов и отображения информации о них в системах Linux. Этот пост рассматривает ряд команд, которые предоставляют детали о файлах и предлагают варианты настройки вашего списка файлов в соответствии с вашими потребностями.</p>



<p>Большинство команд перечисляют файлы в отдельных каталогах, в то время как другие позволяют заглядывать в файловую систему так глубоко, как вам нужно.</p>



<p>Основной командой для перечисления файлов, конечно же, является ls. Однако эта команда имеет множество параметров для поиска и перечисления именно тех файлов, которые вы хотите видеть. К тому же, всегда есть команда find для помощи в очень специфических поисках файлов.</p>



<h2 id="h-perechislenie-fajlov-po-imeni">Перечисление файлов по имени</h2>



<p>Самый простой способ перечислить файлы по имени - это просто использовать команду <strong><code>ls</code></strong>. Перечисление файлов по имени (в алфавитно-цифровом порядке) является настройкой по умолчанию. Вы можете выбрать <strong><code>ls</code></strong> (без деталей) или <strong><code>ls -l</code></strong> (много деталей), чтобы определить, какой вид вы предпочитаете.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-01">$ ls | head -6
report_2023.pdf
Meeting_Summary_2023.pdf
project_plan.pdf
Quarterly_Review_20230315.pdf
data_archive.tar.gz
scripts

$ ls -l | head -6
-rw-rw-r-- 1 user group 20567 Jan 12 2023 report_2023.pdf
-rw-rw-r-- 1 user group 157000 Feb 23 2023 Meeting_Summary_2023.pdf
-rw-rw-r-- 1 user group 47291 Mar 03 2023 project_plan.pdf
-rw-rw-r-- 1 user group 88476 Apr 15 2023 Quarterly_Review_20230315.pdf
-rw-rw-r-- 1 user group 10243550 May 08 11:20 data_archive.tar.gz
drwxrwxr-x 4 user group 4096000 Jun 17 09:47 scripts</pre>



<p>Для постраничного просмотра вашего списка выведите результат команды <strong><code>ls</code></strong> в команду <strong><code>more</code></strong>.</p>



<p><strong><code>more</code></strong> - это команда в Unix и Linux, которая используется для постраничного просмотра текста. Когда вы "передаёте вывод команды ls команде more" (используя символ pipe <code><strong>|</strong></code>), вы позволяете просматривать результаты команды <code><strong>ls</strong></code> по одному экрану за раз.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-001">ls | more</pre>



<p>Это полезно, когда у вас много файлов в каталоге, и вы хотите просмотреть список постепенно, а не весь сразу.</p>



<h2 id="h-perechislenie-fajlov-v-obratnom-poryadke">Перечисление файлов в обратном порядке</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-02">$ ls -r
$ ls -lr</pre>



<p>Чтобы перечислить файлы в обратном порядке по имени, добавьте параметр <strong><code>-r</code></strong> (reverse). Это будет похоже на переворачивание обычного списка вверх тормашками.</p>



<h2 id="h-perechislenie-fajlov-po-rasshireniyu-fajla">Перечисление файлов по расширению файла</h2>



<p>Команда ls не анализирует типы файлов по содержимому, а работает с именами файлов. Однако существует параметр команды, который может перечислять файлы по расширению. Если добавить параметр <strong><code>-X</code></strong>, ls будет сортировать файлы по имени в пределах каждой категории расширений. Например, сначала будут перечислены файлы без расширений (в алфавитно-цифровом порядке), за ними следуют файлы с расширениями, такими как .1, .bz2, .c и так далее.</p>



<h2 id="h-perechislenie-tolko-katalogov">Перечисление только каталогов</h2>



<p>По умолчанию команда <strong><code>ls</code></strong> показывает как файлы, так и каталоги. Если вы хотите перечислить только каталоги, можно использовать параметр <strong><code>-d</code></strong>. В результате вы получите список вроде этого:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-03">$ ls -d */
1/     backups/     modules/       projects/     templates/
2/     html/        patches/       public/       videos/
bin/   new/         private/       save/</pre>



<h2 id="h-perechislenie-fajlov-po-razmeru">Перечисление файлов по размеру</h2>



<p>Если вы хотите перечислить файлы в порядке размера, добавьте параметр <strong><code>-S</code></strong>. Однако обратите внимание, что этот параметр фактически не покажет вам размеры (вместе с другими деталями файла), если вы не добавите также параметр <strong><code>-l</code></strong> (расширенный список). При перечислении файлов по размеру обычно полезно видеть, что команда делает то, что вы просили. Заметьте, что по умолчанию показываются самые большие файлы вначале. Добавьте параметр <strong><code>-r</code></strong>, чтобы изменить это (например, <strong><code>ls -lSr</code></strong>).</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-04">$ ls -lS
total 959492
-rw-rw-r-- 1 shs shs 357679381 Sep 19 2019 sav-linux-free-9.tgz
-rw-rw-r-- 1 shs shs 103270400 Apr 16 17:38 bigfile
-rw-rw-r-- 1 shs shs 79117862 Oct 5 2019 Nessus-8.7.1-ubuntu1110_amd64.deb</pre>



<h2 id="h-perechislenie-fajlov-po-vladeltsu">Перечисление файлов по владельцу</h2>



<p>Если вы хотите перечислить файлы по владельцу (например, в общей директории), вы можете передать вывод команды <strong><code>ls</code></strong> c <strong><code>sort</code></strong> и выбрать столбец владельца, добавив <strong><code>-k3</code></strong> для сортировки по третьему полю.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-05">$ ls -l | sort -k3 | more
total 56
-rw-rw-r-- 1 dory  shs      0 Aug 23 12:27 tasklist
drwx------ 2 gdm   gdm   4096 Aug 21 17:12 tracker-extract-files.121
srwxr-xr-x 1 root  root     0 Aug 21 17:12 ntf_listenerc0c6b8b4567
drwxr-xr-x 2 root  root  4096 Aug 21 17:12 hsperfdata_root
              ^
              |</pre>



<p>Фактически, вы можете сортировать по любому полю таким образом (например, по году). Просто будьте осторожны, чтобы добавить «n» – <strong><code>-k5n</code></strong> – если вы сортируете по полю, которое является числовым, иначе сортировка будет в алфавитно-цифровом порядке. Этот метод сортировки полезен также для сортировки содержимого файлов, а не только для перечисления файлов.</p>



<h2 id="h-perechislenie-fajlov-po-vozrastu">Перечисление файлов по возрасту</h2>



<p>Используйте параметр <strong><code>-t</code></strong>, чтобы перечислить файлы в порядке возраста - насколько они новы. Добавьте параметр <strong><code>-r</code></strong>, чтобы получить в конце списка файлы, которые были обновлены последними. Я использую этот псевдоним, чтобы показать список файлов, которые я обновил последними:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-06">$ alias recent='ls -ltr | tail -8'</pre>



<p>Обратите внимание, что время изменения и модификации файла - это разные вещи. Параметры <strong><code>-c</code></strong> (изменение) и <strong><code>-t</code></strong> (модификация) не всегда дадут одинаковые результаты. Если вы изменяете права доступа к файлу и ничего больше, <strong><code>-c</code></strong> поместит этот файл в верхнюю часть вывода <strong><code>ls</code></strong>, в то время как <code>-t</code> не сделает этого. Если вас интересует разница, посмотрите на вывод команды <strong><code>stat</code></strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-07">$ stat ckacct
  File: ckacct
  Size: 200             Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d      Inode: 829041      Links: 1
Access: (0750/-rwxr-x---)  Uid: ( 1000/     shs)   Gid: ( 1000/     shs)
Access: 2020-08-20 16:10:11.063015008 -0400
Modify: 2020-08-17 07:26:34.579922297 -0400 
Change: 2020-08-24 09:36:51.699775940 -0400 
 Birth: -</pre>



<h2 id="h-perechislenie-fajlov-po-gruppe">Перечисление файлов по группе</h2>



<p>Чтобы сортировать файлы по связанным группам, вы можете передать вывод из расширенного списка на команду <strong><code>sort</code></strong> и указать ей сортировать по четвёртому столбцу.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-08">$ ls -l | sort -k4</pre>



<h2 id="h-perechislenie-fajlov-po-date-dostupa">Перечисление файлов по дате доступа</h2>



<p>Чтобы перечислить файлы по дате доступа (сначала наиболее недавно доступные), используйте параметры <strong><code>-ltu</code></strong>. Параметр «u» обеспечивает порядок списка "по дате доступа".</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-09">$ ls -ltu
total 959500
-rwxr-x---  1 shs     shs        200 Aug 24 09:42 ckacct  </pre>



<h2 id="h-perechislenie-neskolkih-fajlov-v-stroke">Перечисление нескольких файлов в строке</h2>



<p>Иногда более компактный список файлов более подходит для текущей задачи. Команда <strong><code>ls</code></strong> также имеет параметры для этого. Чтобы перечислить файлы на как можно меньшем количестве строк, вы можете использовать <strong><code>--format=comma</code></strong> для разделения имен файлов запятыми, как в этой команде:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-10">$ ls --format=comma
1, 10, 11, 12, 124, 13, 14, 15, 16pgs-landscape.pdf, 16pgs.pdf, 17, 18, 19,
192.168.0.4, 2, 20, 2018-12-23_OoS_2.pdf, 2018-12-23_OoS.pdf, 20190512_OoS.pdf,
'2019_HOHO_application working.pdf' …</pre>



<p>Предпочитаете пробелы? Используйте <strong><code>--format=across</code></strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-11">$ ls --format=across z*
z              zip            zipfiles      zipfiles1.bat   zipfiles2.bat
zipfiles3.bat  zipfiles4.bat  zipfiles.bat  zoom_amd64.deb  zoomap.pdf
zoom-mtg</pre>



<h2 id="h-dobavlenie-glubiny-k-vashim-poiskam">Добавление глубины к вашим поискам</h2>



<p>Хотя команда ls обычно перечисляет файлы в одном каталоге, вы можете выбрать вместо этого рекурсивный список файлов, используя параметр <strong><code>-R</code></strong>, погружаясь на всю глубину каталогов:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-12">$ ls -R zzzzz | grep -v "^$"
zzzzz:
zzzz
zzzzz/zzzz:
zzz
zzzzz/zzzz/zzz:
zz
zzzzz/zzzz/zzz/zz:
z
zzzzz/zzzz/zzz/zz/z:
sleeping</pre>



<p>В качестве альтернативы, вы можете использовать команду <strong><code>find</code></strong> с указанием ограниченной или неограниченной глубины. В этой команде мы указываем команде <strong><code>find</code></strong> искать только в трёх уровнях каталогов:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-13">$ find zzzzz -maxdepth 3
zzzzz
zzzzz/zzzz
zzzzz/zzzz/zzz
zzzzz/zzzz/zzz/zz</pre>



<h2 id="h-vybor-mezhdu-ls-i-find">Выбор между ls и find</h2>



<p>Когда вам нужно перечислить файлы, соответствующие очень узкому списку требований, команда <strong><code>find</code></strong>, вероятно, является более подходящим инструментом, чем <strong><code>ls</code></strong>.</p>



<p>В отличие от <strong><code>ls</code></strong>, команда <strong><code>find</code></strong> ищет как можно глубже, если вы не ограничите её. У неё также есть много других параметров и команда <strong><code>-exec</code></strong>, которая позволяет вам предпринять какое-то конкретное действие, когда вы найдёте искомые файлы.</p>



<h2 id="h-zaklyuchenie">Заключение</h2>



<p>Команда ls имеет множество параметров для перечисления файлов. Изучите их. Возможно, вы найдёте несколько, которые вам понравятся.</p>
<p>The post <a rel="nofollow" href="https://salamba.ru/kak-rabotaet-ls-v-linux/">Как работает ls в Linux</a> appeared first on <a rel="nofollow" href="https://salamba.ru">Salamba.ru</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://salamba.ru/kak-rabotaet-ls-v-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Как создать алиас в линукс</title>
		<link>https://salamba.ru/kak-sozdat-alias-v-linuks/</link>
					<comments>https://salamba.ru/kak-sozdat-alias-v-linuks/#respond</comments>
		
		<dc:creator><![CDATA[Олег Десятников]]></dc:creator>
		<pubDate>Tue, 12 Sep 2023 08:17:55 +0000</pubDate>
				<category><![CDATA[Серверы и сети]]></category>
		<category><![CDATA[aliases]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[команды]]></category>
		<guid isPermaLink="false">https://salamba.ru/?p=3584</guid>

					<description><![CDATA[<p>Алиасы — это просто однострочные команды, которым присваиваются имена и обычно сохраняются в файле автозагрузки (например, .bashrc), который запускается при входе в систему с помощью инструмента вроде PuTTY или при открытии терминального окна на вашем рабочем столе. Синтаксис прост. Он следует этому шаблону:</p>
<p>The post <a rel="nofollow" href="https://salamba.ru/kak-sozdat-alias-v-linuks/">Как создать алиас в линукс</a> appeared first on <a rel="nofollow" href="https://salamba.ru">Salamba.ru</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><a  class="glightbox" href="https://salamba.ru/wp-content/uploads/2023/09/linux-aliases.jpg"><img decoding="async" loading="lazy" width="800" height="450" src="https://salamba.ru/wp-content/uploads/2023/09/linux-aliases.jpg" alt="" class="wp-image-3588"/></a></figure>



<div class="wp-block-yoast-seo-table-of-contents yoast-table-of-contents"><h2>Содержание</h2><ul><li><a href="#h-chto-takoe-aliasy-v-linux" data-level="2">Что такое алиасы в Linux?</a></li><li><a href="#h-kak-sozdat-aliasy" data-level="2">Как создать алиасы</a></li><li><a href="#h-primery-ispolzovaniya-aliasov" data-level="2">Примеры использования алиасов</a></li><li><a href="#h-puti-poiska-i-aliasy" data-level="2">Пути поиска и алиасы</a></li><li><a href="#h-spisok-aktivnyh-aliasov" data-level="2">Список активных алиасов</a></li><li><a href="#h-uproshhenie-slozhnyh-komand" data-level="2">Упрощение сложных команд</a></li><li><a href="#h-izbeganie-opechatok" data-level="2">Избегание опечаток</a></li><li><a href="#h-zapusk-privilegirovannyh-komand" data-level="2">Запуск привилегированных команд</a></li><li><a href="#h-deaktivatsiya-aliasov" data-level="2">Деактивация алиасов</a></li><li><a href="#h-sohranenie-aliasov-dlya-povtornogo-ispolzovaniya" data-level="2">Сохранение алиасов для повторного использования</a></li><li><a href="#h-istochnik-aliasov-iz-fajla" data-level="2">Источник алиасов из файла</a></li><li><a href="#h-zaklyuchenie" data-level="2">Заключение</a></li></ul></div>



<h2 id="h-chto-takoe-aliasy-v-linux">Что такое алиасы в Linux?</h2>



<p>Алиасы — это просто однострочные команды, которым присваиваются имена и обычно сохраняются в файле автозагрузки (например, <code>.bashrc</code>), который запускается при входе в систему с помощью инструмента вроде PuTTY или при открытии терминального окна на вашем рабочем столе. Синтаксис прост. Он следует этому шаблону:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-1">$ alias NAME = 'COMMAND'</pre>



<p>В качестве простого примера, введение команды, как показано ниже, позволяет вам очистить экран, просто набрав "c".</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-2">$ alias c='clear'</pre>



<p>Если вы добавите этот алиас в конец вашего файла автозагрузки с помощью команды, как показано ниже, он будет доступен каждый раз, когда вы открываете терминальное окно. Вы также можете отредактировать ваш файл <code>~/.bashrc</code> и добавить в него алиас вроде <code>c='clear'</code>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-3">$ echo "alias c='clear'" >> ~/.bashrc</pre>



<h2 id="h-kak-sozdat-aliasy">Как создать алиасы</h2>



<p>Чтобы создать алиас, вы должны использовать команду <code>alias</code> с соответствующим синтаксисом. Вот простой пример:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-4">$ echo "alias c='clear'" >> ~/.bashrc</pre>



<p>Теперь каждый раз, когда вы открываете новое терминальное окно или входите в систему, этот алиас будет автоматически доступен.</p>



<h2 id="h-primery-ispolzovaniya-aliasov">Примеры использования алиасов</h2>



<p>Алиасы могут быть очень полезными в различных сценариях. Вот некоторые примеры:</p>



<ol>
<li><strong>Очистка экрана</strong>: Как уже упоминалось, алиас&nbsp;<code>c='clear'</code>&nbsp;позволяет быстро очистить терминальный экран.</li>



<li><strong>Переход на уровень выше</strong>: Алиас&nbsp;<code>..='cd ..'</code>&nbsp;позволяет быстро перейти на один уровень выше в директории.</li>



<li><strong>Просмотр последних команд</strong>: Алиас&nbsp;<code>recent='history | tail 10'</code>&nbsp;покажет 10 последних выполненных команд.</li>



<li><strong>Запуск обновлений</strong>: Алиас&nbsp;<code>updates='sudo dnf update &amp;&amp; sudo dnf upgrade -y'</code>&nbsp;позволяет автоматически запустить обновление и улучшение системы.</li>



<li><strong>Поиск с подсветкой</strong>: Алиасы вроде <code>grep='grep --color=auto'</code> делают вывод команды <code>grep</code> более читаемым, подсвечивая искомые строки.</li>
</ol>



<p>Эти примеры демонстрируют, как алиасы могут сделать вашу работу в терминале более эффективной.</p>



<h2 id="h-puti-poiska-i-aliasy">Пути поиска и алиасы</h2>



<p>Алиасы могут зависеть от вашего пути поиска, если вы не включаете полные пути к файлам как часть алиасов. Однако большинство пользователей Linux по умолчанию будут иметь такие места в файловой системе, как&nbsp;<code>/bin</code>,&nbsp;<code>/usr/bin</code>,&nbsp;<code>/usr/local/bin</code>&nbsp;и так далее, в их путях поиска. Поэтому мало какие алиасы потребуют больше, чем команду и её аргументы.</p>



<p>Чтобы отобразить ваш путь поиска, вы можете использовать команду вроде этой:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-5">$ echo $PATH
/usr/bin:/bin:/usr/local/bin:~/bin</pre>



<p>Это поможет вам понять, какие директории будут просматриваться при использовании алиасов, и, возможно, поможет в дальнейшем настройке.</p>



<h2 id="h-spisok-aktivnyh-aliasov">Список активных алиасов</h2>



<p>Чтобы получить список всех ваших активных алиасов, все, что вам нужно сделать, это использовать команду <code>alias</code>, и она отобразит список ваших алиасов в алфавитном порядке.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-6">$ alias
alias .. = 'cd ..'
alias apt-get='sudo apt-get'
alias c='clear'
alias recent='history | tail 10'</pre>



<p>Эта команда позволяет вам быстро узнать, какие алиасы у вас уже есть, и возможно, поможет вам решить, какие новые алиасы могут быть полезными.</p>



<h2 id="h-uproshhenie-slozhnyh-komand">Упрощение сложных команд</h2>



<p>Алиасы могут быть особенно полезными для упрощения длинных или сложных команд. Например, если у вас есть команда, которую вы часто используете и которая включает в себя множество аргументов или флагов, вы можете создать для неё алиас.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-7">alias recent='history | tail -20'</pre>



<p>В этом примере алиас&nbsp;<code>recent</code>&nbsp;позволяет вам просмотреть 20 последних команд, выполненных в терминале, что может быть полезно для отслеживания ваших действий.</p>



<p>Самое важное — дать алиасу имя, которое легко запомнить и которое относится к назначению команды.</p>



<h2 id="h-izbeganie-opechatok">Избегание опечаток</h2>



<p>Длинные или сложные команды являются хорошей целью для превращения в алиасы. Это экономит время и помогает избежать опечаток. Самый важный момент — дать им имена, которые легко запомнить и которые связаны с целью команды.</p>



<p>Например, если у вас есть команда, которую вы часто ошибочно вводите, вы можете создать алиас, который будет исправлять вашу ошибку автоматически.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-8">alias gerp='grep'</pre>



<p>В этом примере, если вы часто ошибочно пишете <code>gerp</code> вместо <code>grep</code>, алиас автоматически исправит это, запустив команду <code>grep</code>.</p>



<h2 id="h-zapusk-privilegirovannyh-komand">Запуск привилегированных команд</h2>



<p>Если вы склонны забывать вставить&nbsp;<code>sudo</code>&nbsp;в начале команды, которая требует его, вы можете создать алиас, который сделает это за вас. Вы даже можете дать алиасу то же имя, что и команде, поскольку алиасы имеют приоритет.</p>



<p>Например, чтобы перезагрузить систему, вы можете использовать алиас вроде этого:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-9">alias reboot='sudo reboot'</pre>



<p>Аналогично, выполнение обновлений можно сделать с помощью алиаса вроде этого:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-10">alias updates='sudo dnf update &amp;&amp; sudo dnf upgrade -y'</pre>



<p>Эти алиасы позволяют вам запускать команды, требующие привилегий, без необходимости каждый раз вводить <code>sudo</code>.</p>



<h2 id="h-deaktivatsiya-aliasov">Деактивация алиасов</h2>



<p>Для временного отключения алиаса вы можете использовать команду <code>unalias</code>. Это сделает алиас недоступным до следующего входа в систему. Чтобы навсегда отключить алиас, вам нужно удалить его из вашего файла автозагрузки или закомментировать его.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-11">unalias reboot</pre>



<p>В этом примере команда <code>unalias</code> временно отключает алиас <code>reboot</code>. Если вы хотите навсегда отключить этот алиас, вам нужно будет отредактировать файл, в котором он сохранен (обычно <code>~/.bashrc</code>), и удалить или закомментировать соответствующую строку.</p>



<h2 id="h-sohranenie-aliasov-dlya-povtornogo-ispolzovaniya">Сохранение алиасов для повторного использования</h2>



<p>Вы можете создать алиас и использовать его в течение одной сессии входа в систему без сохранения, но он не будет доступен, когда вы снова войдете в систему, если вы его не сохраните. Чтобы просмотреть недавно созданные алиасы, проверьте историю команд с помощью команды вроде этой:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-12">$ history | grep alias</pre>



<p>Это позволит вам увидеть, какие алиасы вы недавно настроили, и возможно, решить, какие из них стоит сохранить для будущего использования.</p>



<h2 id="h-istochnik-aliasov-iz-fajla">Источник алиасов из файла</h2>



<p>Если вы хотите, вы можете хранить алиасы в отдельном файле (то есть, не в вашем файле автозагрузки) и активировать их, когда вам это нужно, с помощью команды вроде этой:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-13">$ . myaliases</pre>



<p>Это позволяет вам иметь набор алиасов, которые можно легко активировать или деактивировать в зависимости от ваших текущих потребностей.</p>



<h2 id="h-zaklyuchenie">Заключение</h2>



<p>Статья подробно рассматривает использование алиасов в операционной системе Linux, начиная от базовых принципов и заканчивая продвинутыми темами. Она охватывает различные аспекты работы с алиасами, такие как их создание, управление и деактивация.</p>
<p>The post <a rel="nofollow" href="https://salamba.ru/kak-sozdat-alias-v-linuks/">Как создать алиас в линукс</a> appeared first on <a rel="nofollow" href="https://salamba.ru">Salamba.ru</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://salamba.ru/kak-sozdat-alias-v-linuks/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Как установить PostgreSQL в AlmaLinux</title>
		<link>https://salamba.ru/kak-ustanovit-postgresql-v-almalinux/</link>
					<comments>https://salamba.ru/kak-ustanovit-postgresql-v-almalinux/#respond</comments>
		
		<dc:creator><![CDATA[Олег Десятников]]></dc:creator>
		<pubDate>Tue, 28 Mar 2023 17:39:19 +0000</pubDate>
				<category><![CDATA[Серверы и сети]]></category>
		<category><![CDATA[almalinux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[серверы]]></category>
		<guid isPermaLink="false">https://salamba.ru/?p=2804</guid>

					<description><![CDATA[<p>PostgreSQL заработал прочную репутацию благодаря своей надежности, гибкости и производительности. Это основное хранилище данных для многочисленных веб-приложений и аналитических приложений. Глобальные гиганты, которые полагаются на PostgreSQL, включают Spotify, Instagram, Trivago, Uber и Netflix.</p>
<p>The post <a rel="nofollow" href="https://salamba.ru/kak-ustanovit-postgresql-v-almalinux/">Как установить PostgreSQL в AlmaLinux</a> appeared first on <a rel="nofollow" href="https://salamba.ru">Salamba.ru</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><a  class="glightbox" href="https://salamba.ru/wp-content/uploads/2023/03/postgresql-logo.png"><img decoding="async" loading="lazy" width="1280" height="880" src="https://salamba.ru/wp-content/uploads/2023/03/postgresql-logo.png" alt="" class="wp-image-2817"/></a></figure>



<div class="wp-block-yoast-seo-table-of-contents yoast-table-of-contents"><h2>Содержание</h2><ul><li><a href="#h-dobavte-repozitorij-postgresql" data-level="2">Добавьте репозиторий PostgreSQL</a></li><li><a href="#h-ustanovka-postgresql-v-alma-linux" data-level="2">Установка PostgreSQL в Alma Linux</a></li><li><a href="#h-initsializatsiya-bazy-dannyh-postgresql" data-level="2">Инициализация базы данных PostgreSQL</a></li><li><a href="#h-zapusk-i-aktivatsiya-sluzhbu-postgresql" data-level="2">Запуск и активация службу PostgreSQL</a></li><li><a href="#h-podklyuchenie-k-baze-dannyh-postgresql" data-level="2">Подключение к базе данных PostgreSQL</a></li><li><a href="#h-ustanovka-parolya-dlya-polzovatelya-postgres" data-level="2">Установка пароля для пользователя Postgres</a></li></ul></div>



<p>PostgreSQL — чрезвычайно популярная система управления реляционными базами данных (RDBMS) с открытым исходным кодом, которая существует уже более 30 лет. Он обеспечивает поддержку языка SQL, который используется для управления базами данных и выполнения операций CRUD (создать, прочитать, обновить, удалить).</p>



<p>PostgreSQL заработал прочную репутацию благодаря своей надежности, гибкости и производительности. Это основное хранилище данных для многочисленных веб-приложений и аналитических приложений. Глобальные гиганты, которые полагаются на PostgreSQL, включают Spotify, Instagram, Trivago, Uber и Netflix.</p>



<p>На момент написания этого руководства последней версией была PostgreSQL 15, и в этой статье мы покажем, как установить PostgreSQL на Rocky Linux и AlmaLinux.</p>



<h2 id="h-dobavte-repozitorij-postgresql">Добавьте репозиторий PostgreSQL</h2>



<p>Версия PostgreSQL по умолчанию в репозиториях Appstream — PostgreSQL 10.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-1">sudo dnf module list postgresql</pre>



<figure class="wp-block-image size-full"><a  class="glightbox" href="https://salamba.ru/wp-content/uploads/2023/03/list-postgresql-module.png"><img decoding="async" loading="lazy" width="880" height="213" src="https://salamba.ru/wp-content/uploads/2023/03/list-postgresql-module.png" alt="" class="wp-image-2806"/></a></figure>



<p>Из вывода ясно видно, что поток PostgreSQL по умолчанию, отмеченный [ d ], — это PostgreSQL 10.</p>



<p>Чтобы установить последнюю версию PostgreSQL, нам нужно сначала установить репозиторий PostgreSQL YUM в нашей системе, как показано ниже.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-2">--------------- Rocky &amp; AlmaLinux 9 --------------- 
sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm 

--------------- Rocky &amp; AlmaLinux 8 ---------------
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm</pre>



<h2 id="h-ustanovka-postgresql-v-alma-linux">Установка PostgreSQL в Alma Linux</h2>



<p>После создания репозитория PostgreSQL YUM следующим шагом будет обновление репозиториев. Просто запустите следующую команду, чтобы добиться этого:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-3">sudo dnf update -y</pre>



<p>Затем отключите модуль по умолчанию, которым, как мы видели ранее, является PostgreSQL 10:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-4">sudo dnf -qy module disable postgresql</pre>



<p>Как только модуль по умолчанию отключен, продолжите и установите клиент и сервер PostgreSQL 15, как показано ниже:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-5">sudo dnf install -y postgresql15-server</pre>



<p>Введите «Y» и нажимайте ENTER каждый раз, когда вам будет предложено импортировать ключ GPG.</p>



<figure class="wp-block-image size-full"><a  class="glightbox" href="https://salamba.ru/wp-content/uploads/2023/03/install-postgresql-15-on-rocky-linux.png"><img decoding="async" loading="lazy" width="1144" height="469" src="https://salamba.ru/wp-content/uploads/2023/03/install-postgresql-15-on-rocky-linux.png" alt="" class="wp-image-2807"/></a></figure>



<p>Команда устанавливает сервер и клиент PostgreSQL вместе с другими зависимостями. В самом конце установки вы должны отобразить вывод, указывающий на то, что все пакеты были успешно установлены.</p>



<figure class="wp-block-image size-full"><a  class="glightbox" href="https://salamba.ru/wp-content/uploads/2023/03/postgresql-installation-completes.png"><img decoding="async" loading="lazy" width="1821" height="432" src="https://salamba.ru/wp-content/uploads/2023/03/postgresql-installation-completes.png" alt="" class="wp-image-2808"/></a></figure>



<p>Вы можете подтвердить установленную версию PostgreSQL с помощью команды:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-6">psql -V

//psql (PostgreSQL) 15.0</pre>



<h2 id="h-initsializatsiya-bazy-dannyh-postgresql">Инициализация базы данных PostgreSQL</h2>



<p>Прежде чем двигаться дальше, нам нужно инициализировать базу данных initdb, которая отвечает за создание нового кластера PostgreSQL. Кластер — это группа или совокупность нескольких баз данных, управляемых кластером.</p>



<p>Итак, для инициализации базы данных выполните команду:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="7">sudo /usr/pgsql-15/bin/postgresql-15-setup initdb</pre>



<figure class="wp-block-image size-full is-resized"><a  class="glightbox" href="https://salamba.ru/wp-content/uploads/2023/03/initialize-postgresql-15-database.png"><img decoding="async" loading="lazy" src="https://salamba.ru/wp-content/uploads/2023/03/initialize-postgresql-15-database.png" alt="" class="wp-image-2809" width="727" height="92"/></a></figure>



<h2 id="h-zapusk-i-aktivatsiya-sluzhbu-postgresql">Запуск и активация службу PostgreSQL</h2>



<p>После установки и инициализации PostgreSQL следующим шагом будет запуск службы и обеспечение работы сервера базы данных. Но перед этим включите PostgreSQL для запуска во время загрузки.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="8">sudo systemctl enable postgresql-15</pre>



<p>После этого запустите сервер базы данных PostgreSQL.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="9">sudo systemctl start postgresql-15</pre>



<p>Чтобы убедиться, что PostgreSQL запущен и работает, выполните:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="10">sudo systemctl status postgresql-15</pre>



<figure class="wp-block-image size-full"><a  class="glightbox" href="https://salamba.ru/wp-content/uploads/2023/03/check-postgresql-15-status.png"><img decoding="async" loading="lazy" width="954" height="478" src="https://salamba.ru/wp-content/uploads/2023/03/check-postgresql-15-status.png" alt="" class="wp-image-2810"/></a></figure>



<p>Из вывода видно, что наш сервер базы данных работает так, как мы и ожидали.</p>



<h2 id="h-podklyuchenie-k-baze-dannyh-postgresql">Подключение к базе данных PostgreSQL</h2>



<p>огда PostgreSQL установлен, создается пользователь базы данных по умолчанию с именем postgres. Он не требует никакой аутентификации, поэтому для входа в систему не требуется пароль. На следующем шаге мы создадим пароль для пользователя postgres из соображений безопасности.</p>



<p>Сейчас мы собираемся войти в оболочку PostgreSQL, сначала переключившись на пользователя postgres.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="11">sudo su - postgres</pre>



<p>После того, как вы переключились на пользователя postgresql, получите доступ к приглашению базы данных с помощью команды:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="12">psql</pre>



<figure class="wp-block-image size-full is-resized"><a  class="glightbox" href="https://salamba.ru/wp-content/uploads/2023/03/connect-postgresql-database-shell.png"><img decoding="async" loading="lazy" src="https://salamba.ru/wp-content/uploads/2023/03/connect-postgresql-database-shell.png" alt="" class="wp-image-2811" width="728" height="181"/></a></figure>



<h2 id="h-ustanovka-parolya-dlya-polzovatelya-postgres">Установка пароля для пользователя Postgres</h2>



<p>Наконец, мы собираемся защитить пользователя postgres паролем из соображений безопасности. Как пользователь sudo выполните команду:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="13">sudo passwd postgres</pre>



<p>Введите новый пароль и подтвердите. Теперь снова войдите в систему как пользователь Postgres.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="14">su - postgres</pre>



<figure class="wp-block-image size-full is-resized"><a  class="glightbox" href="https://salamba.ru/wp-content/uploads/2023/03/set-postgres-user-password.png"><img decoding="async" loading="lazy" src="https://salamba.ru/wp-content/uploads/2023/03/set-postgres-user-password.png" alt="" class="wp-image-2812" width="727" height="225"/></a></figure>



<p>И запустите показанную команду:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="15">psql -c "ALTER USER postgres WITH PASSWORD 'your-password';"</pre>



<figure class="wp-block-image size-full"><a  class="glightbox" href="https://salamba.ru/wp-content/uploads/2023/03/alter-postgres-user-role.png"><img decoding="async" loading="lazy" width="766" height="138" src="https://salamba.ru/wp-content/uploads/2023/03/alter-postgres-user-role.png" alt="" class="wp-image-2813"/></a></figure>



<p>В следующий раз, когда вы попытаетесь войти в систему с помощью пользователя postgres, вам потребуется пройти аутентификацию.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="16">su - postgres</pre>



<figure class="wp-block-image size-full is-resized"><a  class="glightbox" href="https://salamba.ru/wp-content/uploads/2023/03/login-postgresql-database.png"><img decoding="async" loading="lazy" src="https://salamba.ru/wp-content/uploads/2023/03/login-postgresql-database.png" alt="" class="wp-image-2814" width="727" height="110"/></a></figure>
<p>The post <a rel="nofollow" href="https://salamba.ru/kak-ustanovit-postgresql-v-almalinux/">Как установить PostgreSQL в AlmaLinux</a> appeared first on <a rel="nofollow" href="https://salamba.ru">Salamba.ru</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://salamba.ru/kak-ustanovit-postgresql-v-almalinux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Репликация баз данных MySQL</title>
		<link>https://salamba.ru/replikatsiya-baz-dannyh-mysql/</link>
					<comments>https://salamba.ru/replikatsiya-baz-dannyh-mysql/#respond</comments>
		
		<dc:creator><![CDATA[Олег Десятников]]></dc:creator>
		<pubDate>Tue, 21 Feb 2023 05:23:04 +0000</pubDate>
				<category><![CDATA[Серверы и сети]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[репликация]]></category>
		<guid isPermaLink="false">https://salamba.ru/?p=2652</guid>

					<description><![CDATA[<p>Репликация MySQL – это процесс, позволяющий легко поддерживать несколько копий данных MySQL путем их автоматического копирования из базы данных master (ведущей) в slave (ведомую). Это упрощает резервное копирование данных, помогает анализировать их без использования главной БД, а также используется в качестве средства масштабирования.</p>
<p>The post <a rel="nofollow" href="https://salamba.ru/replikatsiya-baz-dannyh-mysql/">Репликация баз данных MySQL</a> appeared first on <a rel="nofollow" href="https://salamba.ru">Salamba.ru</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full is-resized"><a  class="glightbox" href="https://salamba.ru/wp-content/uploads/2023/02/mysql-master-slave-replication-1-copy.jpg"><img decoding="async" loading="lazy" src="https://salamba.ru/wp-content/uploads/2023/02/mysql-master-slave-replication-1-copy.jpg" alt="" class="wp-image-2666" width="728" height="455"/></a></figure>



<div class="wp-block-yoast-seo-table-of-contents yoast-table-of-contents"><h2>Содержание</h2><ul><li><a href="#h-chto-takoe-replikatsiya-mysql" data-level="2">Что такое репликация MySQL?</a></li><li><a href="#h-nastrojka-bazy-dannyh-master" data-level="2">Настройка базы данных Master</a></li><li><a href="#h-nastrojka-slave-bazy-dannyh" data-level="2">Настройка slave базы данных</a></li></ul></div>



<h2 id="h-chto-takoe-replikatsiya-mysql">Что такое репликация MySQL?</h2>



<p>Репликация MySQL – это процесс, позволяющий легко поддерживать несколько копий данных MySQL путем их автоматического копирования из базы данных master (ведущей) в slave (ведомую). Это упрощает резервное копирование данных, помогает анализировать их без использования главной БД, а также используется в качестве средства масштабирования.</p>



<p>Данное руководство приводит очень простой пример репликации MySQL, в котором база данных master передает информацию БД slave. Для выполнения данного процесса нужны два IP: для master-сервера и для slave-сервера.</p>



<ul>
<li>12.34.56.789- Master</li>



<li>12.23.34.456- Slave</li>
</ul>



<p><strong>Требования</strong></p>



<p>В данной статье предполагается наличие пользователя с привилегиями sudo, а также уже установленной системы MySQL. Чтобы установить MySQL, наберите:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-1">sudo apt-get install mysql-server mysql-client</pre>



<h2 id="h-nastrojka-bazy-dannyh-master"><strong>Настройка базы данных Master</strong></h2>



<p>На master-сервере откройте конфигурационный файл mysql:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-2">sudo nano /etc/mysql/my.cnf</pre>



<p>В данный файл нужно внести несколько изменений.</p>



<p>Для начала найдите раздел, который выглядит так (он связывает сервер с локальным хостом):</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="my.cnf" data-enlighter-group="bash-3">bind-address = 127.0.0.1</pre>



<p>Замените стандартный IP-адрес IP-адресом сервера.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="my.cnf" data-enlighter-group="bash-4">bind-address = 12.34.56.789</pre>



<p>Следующее изменение касается директивы server-id, расположенной в разделе mysqld. Здесь можно задать любую переменную (возможно, проще всего начать с 1), но число должно быть уникальным и не совпадать ни с одним другим server-id в группе репликации.</p>



<p>Убедитесь, что строка раскомментирована:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="my.cnf" data-enlighter-group="bash-5">server-id = 1</pre>



<p>Затем найдите строку log_bin. Она содержит детали о репликации. Slave-сервер будет копировать все изменения, зарегистрированные в журнале. В данном случае нужно просто раскомментировать строку log_bin:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="my.cnf" data-enlighter-group="bash-6">log_bin = /var/log/mysql/mysql-bin.log</pre>



<p>В завершение укажите базу данных, которую нужно копировать на slave-сервер. Можно вносить более одной базы данных, повторяя эту линию в конфигурациях каждой нужной базы.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="my.cnf" data-enlighter-group="bash-7">binlog_do_db = newdatabase</pre>



<p>Внеся все нужные изменения, сохраните их и закройте конфигурационный файл.</p>



<p>Перезапустите MySQL:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-8">sudo service mysql restart</pre>



<p>Остальные действия нужно выполнить в оболочке MySQL.</p>



<p>Откройте оболочку MySQL:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-9">mysql -u root -p</pre>



<p>Передайте привилегии slave-серверу. Эту строку можно также использовать для того, чтобы указать имя и пароль slave-сервера. Команда имеет такой формат:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-10">GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password';</pre>



<p>Затем введите:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-11">FLUSH PRIVILEGES;</pre>



<p>Дальнейшие действия немного сложнее. Для реализации поставленной задачи нужно открыть новое окно или вкладку в дополнение к уже используемой.</p>



<p>В текущей вкладке откройте базу данных “newdatabase”.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-12">USE newdatabase;</pre>



<p>После этого нужно заблокировать базу данных, чтобы предотвратить любые изменения:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-13">FLUSH TABLES WITH READ LOCK;</pre>



<p>Затем введите:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-14">SHOW MASTER STATUS;</pre>



<p>Должна появиться подобная таблица:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="mysql" data-enlighter-group="bash-15">mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      107 | newdatabase  |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)</pre>



<p>С этой позиции slave БД начнет репликацию. Запишите эти числа, они пригодится позже.</p>



<p>При внесении любых изменений в том же окне база данных будет автоматически разблокирована. Потому нужно открыть новую вкладку или окно и выполнить там следующие действия.</p>



<p>База данных все еще должна оставаться заблокированной. Экспортируйте базу данных в новое окно с помощью mysqldump (следующую команду нужно выполнить в оболочке bash, а не MySQL).</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-16">mysqldump -u root -p --opt newdatabase > newdatabase.sql</pre>



<p>Теперь вернитесь в исходное окно и разблокируйте базу данных, снова разрешив вносить в нее изменения. Закройте оболочку.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-17">UNLOCK TABLES;
QUIT;</pre>



<p>Теперь master БД готова.</p>



<h2 id="h-nastrojka-slave-bazy-dannyh">Настройка slave базы данных</h2>



<p>Подготовив master БД, можно перейти к настройке slave БД.</p>



<p>Войдите на сервер, откройте оболочку MySQL и создайте новую базу данных, которая будет содержать реплицированные из master данные, затем закройте оболочку:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-18">CREATE DATABASE newdatabase;
EXIT;</pre>



<p>Импортируйте ранее экспортированную из master базу данных.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-19">mysql -u root -p newdatabase &lt; /path/to/newdatabase.sql</pre>



<p>Теперь нужно настроить slave таким же образом, как это было с master:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-20">sudo nano /etc/mysql/my.cnf</pre>



<p>Следуя советам предыдущего раздела, установите некоторые важные конфигурации. Начните с server-id; как упоминалось ранее, этот номер должен быть уникальным. Так как в предыдущем разделе было установлено значение 1, теперь нужно установить другое:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="my.cnf" data-enlighter-group="bash-21">server-id = 2</pre>



<p>Затем убедитесь, что следующие три критерия заполнены соответствующим образом:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="my.cnf" data-enlighter-group="bash-22">relay-log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = newdatabase</pre>



<p>Кроме того, нужно внести строку relay-log, которой нет по умолчанию. По завершении не забудьте сохранить и закрыть конфигурационный файл slave.</p>



<p>Снова перезапустите MySQL:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-23">sudo service mysql restart</pre>



<p>Далее нужно активировать репликацию в оболочке MySQL.</p>



<p>Откройте оболочку MySQL и внесите следующие детали, заменяя значения по умолчанию.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-24">CHANGE MASTER TO MASTER_HOST='12.34.56.789',MASTER_USER='slave_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=  107;</pre>



<p>Данная команда выполняет несколько действий:</p>



<ol start="1">
<li>определяет текущий сервер как slave-сервер;</li>



<li>предоставляет серверу правильные данные для входа;</li>



<li>говорит slave-серверу, откуда начинать репликацию; журнал master-сервера и позиция, с которой нужно начинать репликацию, указываются с помощью чисел, которые были записаны ранее.</li>
</ol>



<p>Готово! master - и slave - сервер настроены.</p>



<p>Запустите slave-сервер:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-25">START SLAVE;</pre>



<p>Просмотреть подробности репликации можно при помощи следующей команды. Параметр \G упорядочивает текст, что делает его более удобным для чтения.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-26">SHOW SLAVE STATUS\G</pre>



<p>При возникновении проблем со связью попробуйте запустить slave при помощи следующей команды:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="bash-27">SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; SLAVE START;</pre>



<p>Готово!</p>
<p>The post <a rel="nofollow" href="https://salamba.ru/replikatsiya-baz-dannyh-mysql/">Репликация баз данных MySQL</a> appeared first on <a rel="nofollow" href="https://salamba.ru">Salamba.ru</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://salamba.ru/replikatsiya-baz-dannyh-mysql/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
