185 похожих чатов

Кто-Нибудь может подсказать как делать правильно бэкап таблиц базы данных? В

этом коде все превосходно и он даже работает на iMac, но когда запускаю на хостинге Ubuntu 20.04, то вот такая вот ошибка - Error Domain=NSCocoaErrorDomain Code=260 "The file doesn’t exist."

55 ответов

88 просмотров

хз что делает код, но создай его перед тем как к нему обращаться

Евгений-Данилов Автор вопроса
Oleh Nerzh
хз что делает код, но создай его перед тем как к ...

Ошибка именно в run, и когда выполняется mysqldump уже в файл, то ошибка что файла нет типа. Хотя на хостинге он есть! Ну и на локалке все работает.

Евгений Данилов
Ошибка именно в run, и когда выполняется mysqldump...

В линуксе файловая система case sensitive, на маке — нет. Когда-то я на такое напарывался в паре iOS/симулятор, с тех пор запомнил. Проверь этот момент.

Евгений-Данилов Автор вопроса
Alex Sherbakov
В линуксе файловая система case sensitive, на маке...

Тогда почему проходит проверку на то что файл есть, а эта ошибка уже появляется в run где и идет попытка в этот файл запихнуть результат mysqldump

Евгений Данилов
абсолютный

Вапор под рутом работает?

Евгений-Данилов Автор вопроса
Евгений Данилов
Так точно

Фу как отвратительно! :)

Евгений-Данилов Автор вопроса
Alex Sherbakov
Фу как отвратительно! :)

Путь такой - /root/project/Public/backups/admin_default/2023-11-30_17-54-03/product_enum.sql

Там вообще ошибка не от самого процеса, а от свифта. Точно такая команда есть?

Евгений-Данилов Автор вопроса
Dmytro
Там вообще ошибка не от самого процеса, а от свифт...

Так на локалке бекапы создаются и все идеально работает!

Евгений Данилов
Так на локалке бекапы создаются и все идеально раб...

На маке процес вапора может наследовать PATH и соотвественно mysqldump, а на линуксе нет и нужно прописать полный путь к экзекютаблу

Евгений-Данилов Автор вопроса
Евгений Данилов
screenshot По коду видны мои мучения:)

Попробуй слогировать путь команды, которая запускается и попробовать в терминале просто запустить

Dmytro
Попробуй слогировать путь команды, которая запуска...

Удваиваю. На 80 процентов уверен, что либо путь относительный типа ../ либо еще что-то что не допустимо в иерархии файловой системы Линукса.

Евгений Данилов
screenshot По коду видны мои мучения:)

Слушай, ну и это тоже плохая практика. PATH был придуман для людей, чтобы не набирать полный путь запускаемой программы/команды каждый раз. Когда же ты один раз и навсегда прописываешь ее вызов где-либо — в коде или в скрипте — то надо прописывать с полным путем, тогда получаются одни плюсы: 1. Сокращается время запуска (системе не надо шарить по директориям PATH) 2. Ты точно знаешь, что запустится именно та версия, что ты указал, а не какая-либо другая, "случайно" оказавшаяся в PATH раньше нужной, что случается чаще, чем можно было бы подумать. Это не тот случай, когда стОит экономить буквы.

Alex Sherbakov
Слушай, ну и это тоже плохая практика. PATH был пр...

На самом деле по этому коду хз что pathToMySQL делает, может там и полный путь

Dmytro
Попробуй слогировать путь команды, которая запуска...

-e /{path-to-file}/{file-name}.{file-extension} ] && echo "File exists" || echo "File does not exist"

Keiman
-e /{path-to-file}/{file-name}.{file-extension} ] ...

Та просто ровно ту же команду вставить, и посмотреть какой вывод будет

Dmytro
Та просто ровно ту же команду вставить, и посмотре...

Лишь бы команда лишнего не наделала :)

Dmytro
На самом деле по этому коду хз что pathToMySQL дел...

Вот именно что хз. И нахер оно нужно — тоже хз. which mysqldump , а результат в код.

Alex Sherbakov
Вот именно что хз. И нахер оно нужно — тоже хз. wh...

Хардкодить пути - тоже не лучшый вариант)

Dmytro
Хардкодить пути - тоже не лучшый вариант)

Плюсы я написал, допиши теперь минусы :)

Alex Sherbakov
Плюсы я написал, допиши теперь минусы :)

Запускаем на другом серваке, где mysqldump закинуло не в /usr/bin/, а к примеру в /usr/local/bin и ловим ошибку)

Dmytro
Запускаем на другом серваке, где mysqldump закинул...

Тут же все поклонники докера, такого быть не может :)

Alex Sherbakov
Тут же все поклонники докера, такого быть не может...

На маке у себя для теста не сможешь запустить

Dmytro
На маке у себя для теста не сможешь запустить

Расскажи мне, где я чего не смогу запустить :)

Dmytro
Хардкодить пути - тоже не лучшый вариант)

у меня пути идут из ключей и/или env vars, но так да, лучше полные пути

Dmytro
У меня так же:)

Ну так найдется хоть один минус? :)

Alex Sherbakov
Ну так найдется хоть один минус? :)

Не настраивается. Например нужно будет собрать форк этого weasyprint - как его подсунуть своему приложению, рекомпилить?

Andrey
Не настраивается. Например нужно будет собрать фор...

Принято. Но всегда можно предусмотреть сначала брать из env для таких случаев.

Евгений-Данилов Автор вопроса
Евгений-Данилов Автор вопроса
Dmytro
Запускаем на другом серваке, где mysqldump закинул...

Проверил, Process оказался под пользователем root

Евгений Данилов
Попробовал все сработало корректно:(

А в свифте выбивает ошибку Error task.run save и тд?

Евгений-Данилов Автор вопроса
Dmytro
А в свифте выбивает ошибку Error task.run save и т...

На локалке вообще все хорошо срабатывает, только на хостинге проблема. В логе ничего не пишет, а перехват ошибки дает вот это - Error Domain=NSCocoaErrorDomain Code=260 "The file doesn’t exist."

Евгений-Данилов Автор вопроса
Евгений-Данилов Автор вопроса
Евгений Данилов
mysqldump

Да, но… может это относится к testSaveBase.sql? Директория где он должен быть создан доступна для записи? Проверен этот момент. Либо это про то что mysqldump бинарь не находится. Бывает что от ординарного юзера работает без явного указания пути, а под рутом нужен полный абсолютный путь. Это уже выше советовали…

Евгений-Данилов Автор вопроса
Keiman
Да, но… может это относится к testSaveBase.sql? Ди...

Везде права -rw-rw-rw- И при ручном бекапе и когда перед бекапом создаются пустые файлы

Евгений-Данилов Автор вопроса
Alex Sherbakov
Полный путь к mysqldump известен?

Упс сейчас этот момент проверю!

Евгений-Данилов Автор вопроса
Alex Sherbakov
Полный путь к mysqldump известен?

ОГРОМНОЕ СПАСИБО! Дело было в неправильном пути до mysqldump на сервере!

Евгений Данилов
ОГРОМНОЕ СПАСИБО! Дело было в неправильном пути до...

В смысле. Это ж первое, о чем начали говорить еще 2 часа назад 🙈

Евгений Данилов
ОГРОМНОЕ СПАСИБО! Дело было в неправильном пути до...

Ну, ёлки-палки 3 человека написали включая меня про необходимость такой проверки…

Евгений-Данилов Автор вопроса
Alex Sherbakov
В смысле. Это ж первое, о чем начали говорить еще ...

Что-то я жестко тупанул получается, извиняюсь!

Евгений Данилов
В task.run()

Пока просматривал, увидел что некоторые разрабы разделяют код по виду запуска, под MacOS вариант как у вас, а под Linux используют Process.launchPath and Process.launch() вместо .run() И по по-разному методы эти работают: один thread создает, другой форкает процесс.

Евгений-Данилов Автор вопроса
Keiman
Пока просматривал, увидел что некоторые разрабы ра...

Как минимум на линуксе разницы между ними нет. launch запускает run

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта