<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.rtzra.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>RTzRa&#039;s hive - software:rsync</title>
        <description>Все работает</description>
        <link>https://wiki.rtzra.ru/</link>
        <lastBuildDate>Sun, 19 Jul 2026 21:14:54 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wiki.rtzra.ru/_media/wiki/logo.png</url>
            <title>RTzRa&#039;s hive</title>
            <link>https://wiki.rtzra.ru/</link>
        </image>
        <item>
            <title>Бэкап сервера при помощи Rsync</title>
            <link>https://wiki.rtzra.ru/software/rsync/server-backup</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;behkap_servera_pri_pomoschi_rsync&quot;&gt;Бэкап сервера при помощи Rsync&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0411\u044d\u043a\u0430\u043f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 Rsync&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;behkap_servera_pri_pomoschi_rsync&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-67&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;zadacha&quot;&gt;Задача&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Есть боевой сервер, на котором крутятся проекты. Необходимо время от времени (минимум - раз в сутки) забэкапить эти проекты на другой сервер.
&lt;/p&gt;

&lt;p&gt;
Есть огромное количество всяких очень даже замечательных программ и скриптов для резервного копирования. Но они или слишком круты или предельно просты.
&lt;/p&gt;

&lt;p&gt;
Бэкапалка должна уметь:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Синхронизировать файлы, архивы и т.д. по решению сервера бэкапа, т.к. боевой и так всякими делами занят&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Работать по расписанию&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Подключение и авторизация по ключу&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Передача данных по защищенному каналу&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Настраиваемое кол-во пространства на диске, отведенного под бэкапы (т.е. периодически прибираться за собой и не забивать все место на диске)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Работать тихонько и напоминать о себе только отчетами&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Выбираем золотую середину: rsync + cron + несколько скриптов для облегчения жизни.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;zadacha&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;68-1565&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;terminy&quot;&gt;Термины&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
MainServer (MS) - основной, боевой сервер
&lt;/p&gt;

&lt;p&gt;
StorageServer (SS) - сервер для хранения бэкапов
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0422\u0435\u0440\u043c\u0438\u043d\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;terminy&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1566-1732&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;ustanavlivaem_rsync&quot;&gt;Устанавливаем rsync&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
На обоих серверах устанавливаем rsync и ssh (если это еще не сделано):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ sudo apt-get install ssh rsync&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c rsync&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ustanavlivaem_rsync&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1733-1947&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit5&quot; id=&quot;sozdaem_polzovatelja_dlja_behkapa&quot;&gt;Создаем пользователя для бэкапа&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
На обоих серверах создаем одинаковых пользователей (одинаковым должно быть как имя пользователя, так и группа - это пригодится в дальнейшем).
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ sudo groupadd --gid 2222 rsyncbackup
$ sudo useradd --comment &amp;quot;Rsync backup user&amp;quot; --gid 2222 --uid 2222 --create-home -d /home/rsyncbackup rsyncbackup
$ sudo passwd rsyncbackup&lt;/pre&gt;

&lt;p&gt;
и вводим пароль пользователя rsyncbackup 2 раза. В примере 2222 - идентификатор и группы и пользователя, необходимо перед запуском команды убедить что он не занят.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u043b\u044f \u0431\u044d\u043a\u0430\u043f\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sozdaem_polzovatelja_dlja_behkapa&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1948-2759&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit6&quot; id=&quot;sozdaem_kljuchi_avtorizacii&quot;&gt;Создаем ключи авторизации&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Логинимся на сервер SS, создаем ключ для авторизации:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ ssh rsyncbackup@SS
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/rsyncbackup/.ssh/id_rsa): 
Created directory &amp;#039;/home/rsyncbackup/.ssh&amp;#039;.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/rsyncbackup/.ssh/id_rsa.
Your public key has been saved in /home/rsyncbackup/.ssh/id_rsa.pub.
The key fingerprint is:
57:bb:27:1e:c6:7d:5e:5c:c4:59:92:eb:c5:21:84:5c rsyncbackup@nas
The key&amp;#039;s randomart image is:
+--[ RSA 2048]----+
|          . +E...|
|           o ..+o|
|            . .++|
|           . ...o|
|        S . .. ..|
|         . . o...|
|            * o +|
|           o + o.|
|            .   .|
+-----------------+
$&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043b\u044e\u0447\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sozdaem_kljuchi_avtorizacii&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2760-3682&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit7&quot; id=&quot;kopiruem_kljuchi_na_server&quot;&gt;Копируем ключи на сервер&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
C сервера SS копируем ключ:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ ssh-copy-id -i /home/rsyncbackup/.ssh/id_rsa rsyncbackup@MS
The authenticity of host &amp;#039;MS (XXX.XXX.XXX.XXX)&amp;#039; can&amp;#039;t be established.
RSA key fingerprint is .......
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added &amp;#039;MS,XXX.XXX.XXX.XXX&amp;#039; (RSA) to the list of known hosts.
rsyncbackup@MS&amp;#039;s password: 
Now try logging into the machine, with &amp;quot;ssh &amp;#039;rsyncbackup@MS&amp;#039;&amp;quot;, and check in:

  .ssh/authorized_keys

to make sure we haven&amp;#039;t added extra keys that you weren&amp;#039;t expecting.
$&lt;/pre&gt;

&lt;p&gt;
Пробуем подключиться:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ ssh rsyncbackup@MS
Ubuntu 10.04.4 LTS

Welcome to the Ubuntu Server!
 * Documentation:  http://www.ubuntu.com/server/doc

Uptime:  20:35:31 up 147 days, 16:29,  1 user,  load average: 0.12, 0.06, 0.08

0 packages can be updated.
0 updates are security updates.

$ &lt;/pre&gt;

&lt;p&gt;
Если не задает вопросов о пароле - все получилось и работает.
&lt;/p&gt;

&lt;p&gt;
Если спрашивает пароль - проверяем настройки сервера MS, следующие директивы в файле /etc/ssh/sshd_config должны быть установлены так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeyFile %h/.ssh/authorized_keys&lt;/pre&gt;

&lt;p&gt;
и проверить следующие директивы в файле /etc/ssh/ssh_config:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043a\u043b\u044e\u0447\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;kopiruem_kljuchi_na_server&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3683-5280&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit8&quot; id=&quot;nastraivaem_rsync&quot;&gt;Настраиваем Rsync&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Пишем небольшой скриптик /home/rsyncbackup/backup.sh:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#!/bin/sh
rsync -e ssh -avzP --stats rsyncbackup@MS:/var/backup /mnt/backup&lt;/pre&gt;

&lt;p&gt;
Этот скрипт копирует с сервера MS все содержимое папки /var/backup и всех вложенных папок в локальную папку /mnt/backup
&lt;/p&gt;

&lt;p&gt;
Осталось добавить вызов этого скрипта в cron и станет хорошо.
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/rsync?do=showtag&amp;amp;tag=rsync&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:rsync&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; rsync&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/ssh?do=showtag&amp;amp;tag=ssh&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:ssh&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; ssh&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/avtorizacija_po_kljuchu?do=showtag&amp;amp;tag=%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BA%D0%BB%D1%8E%D1%87%D1%83&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:avtorizacija_po_kljuchu&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; авторизация по ключу&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/behkap?do=showtag&amp;amp;tag=%D0%B1%D1%8D%D0%BA%D0%B0%D0%BF&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:behkap&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; бэкап&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c Rsync&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;nastraivaem_rsync&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;5281-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 09 May 2017 15:34:00 +0000</pubDate>
        </item>
    </channel>
</rss>
