{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Воронин: заметки с тегом ftp",
    "_rss_description": "воронин, voronin, it",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/voronin.one\/tags\/ftp\/",
    "feed_url": "https:\/\/voronin.one\/tags\/ftp\/json\/",
    "icon": "https:\/\/voronin.one\/pictures\/userpic\/userpic@2x.jpg?1658757233",
    "authors": [
        {
            "name": "Алексей Воронин",
            "url": "https:\/\/voronin.one\/",
            "avatar": "https:\/\/voronin.one\/pictures\/userpic\/userpic@2x.jpg?1658757233"
        }
    ],
    "items": [
        {
            "id": "26",
            "url": "https:\/\/voronin.one\/all\/sinhronizaciya-ftp-synology\/",
            "title": "синхронизация ftp synology",
            "content_html": "<p>Был неприятно удивлен тем, что в новой DSM 7 нет больше возможности подключать удаленные папки по протоколу FTP. Ну, это нас никогда не останавливало, накатаем скрипт синхронизации папок по расписанию.<\/p>\n<p>Вы скажете «стоп» — это совершенно разные вещи, а я отвечу, наши подрядчики придумали синхронизацию по расписанию. И попросили нам это реализовать у себя.<\/p>\n<p>Их вариант подразумевал использование WinSCP <a href=\"https:\/\/winscp.net\/.\">https:\/\/winscp.net\/.<\/a> Мы же используем клиент lftp, который есть на борту Synology.<\/p>\n<p>создаём sh файл<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/bash\n\nUSER=&quot;user_login&quot;\nHOST=&quot;ftp_server_address&quot;\nPORT=&quot;ftp_server_port&quot;\nLCD=&quot;\/volume1\/полный\/путь\/к\/папке\/с\/проектом&quot;\t# путь к папке на нашем локальном сервере\nRCD=&quot;путь\/к\/удаленной\/папке&quot;\t# путь к папке на ftp сервере\n\n# удаленную папку синхронизируем к нам\ncd &quot;$LCD\/OUT&quot;\nlftp $USER:&#039;P@$$W0RD&#039;@$HOST:$PORT -e &quot;set file:charset utf8;set ftp:charset utf8; cd $RCD\/OUT; mirror --continue --delete --verbose; exit;&quot;\n\n# нашу папку синхронизируем на сервер\ncd &quot;$LCD\/IN&quot;\nlftp $USER:&#039;P@$$W0RD&#039;@$HOST:$PORT -e &quot;set file:charset utf8;set ftp:charset utf8; cd $RCD\/IN; mirror --continue --reverse --delete --verbose; exit;&quot;<\/code><\/pre><p>предположим, что на удалённом сервере папку OUT надо синхронизировать с локальной папкой OUT, а локальную папку IN c удалённой IN.<\/p>\n<p>К локальной папке лучше использовать полный путь, т. к. вы будете запускать по расписанию, то можете прописать путь относительно домашней папки пользователя от имени которого выполнится скрипт.<\/p>\n<p>ЗЫ Почему я пишу пароль прямо в строку подключения? Потому что передать через переменную мне не удалось, возможно из-за спецсимволов в пароле. Я не стал париться, мой метод работает.<\/p>\n<p>PS 25.07.2022 — добавил charset «set file:charset utf8;set ftp:charset utf8;» иначе может неверно работать с кириллицей<\/p>\n",
            "date_published": "2022-04-22T17:04:28+03:00",
            "date_modified": "2022-07-25T18:04:18+03:00",
            "tags": [
                "ftp",
                "lftp",
                "synology"
            ],
            "_date_published_rfc2822": "Fri, 22 Apr 2022 17:04:28 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "26",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        }
    ],
    "_e2_version": 4171,
    "_e2_ua_string": "Aegea 11.4 (v4171)"
}