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

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

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

55 ответов

65 просмотров

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

Евгений-Данилов Автор вопроса
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

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

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

кому не сложно распишите пожалуйста для какой цели тут вот эти скобки и в них пихается указатель?
Михаил Helper
11
Комрады, посоветуйте, куда копать? Стал прикручивать кастомизацию тем. В OnShow главной главной формы пытаюсь загрузить из файла настроек и применить тему (на скрине, как долж...
Ed Doc
13
Такс, блин, таки кто-то знает, каким образом работают макросы stdin/stdout/stderr? Я влез в stdio.h, там определения нет, отладил через асмокод - вызывается функция со странны...
The Bird of Hermes
18
OnShow один раз вызывается? или возможен Hide?
Iluha Companets
14
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Гайз, кто-нибудь пробовал запустить probe-rs под камень, которого нет в probe-rs? Мб есть какой-нибудь пример у кого... Через target-gen попробовал сгенерировать chip-descript...
Максим Смирнов
2
Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
Всем привет, на линуксе лучше на fasm или nasm учиться писать для начала ?
meszjol
14
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
Карта сайта