В настоящее время я работаю над сценарием резервного копирования для входа на рабочий сервер и загрузки последних дампов SQL на промежуточный сервер. У меня нет проблем с извлечением дампов SQL, но у меня есть проблема с перемещением последних файлов резервной копии во временную папку.
Пользователь моего резервного скрипта: mysqlBackupUser
Я использую домашний каталог этого пользователя в качестве места для этого скрипта и для хранения резервных копий. Структура папок:
/home
|- mysqlBackupUser
|- .ssh
|- backups
|- bin
Мой скрипт сидит bin
и резервные копии загружаются в backups
каталог
В backups
каталоге также есть другие папки для организации сервера и типа резервных копий. IE:
/backups
|-mysql
|- production1
|- production2
|-misc
|- production1
|- production2
Пока все нормально и работает как положено. Проблема в том, когда я в (не ограничиваясь):
/home/mysqlBackupUser/backups/mysql/production1/
когда я создаю каталог tmp с именем _lastBackUp
и пытаюсь переместить мои предыдущие резервные копии в него, я получаю:
find: Failed to change directory: Permission denied
Мой код для этого:
local tmpBackUpDir="${LOCAL_LOCATION_DIR}/_lastBackUp/"
# Ensure the directory exist
mkdir -p "${tmpBackUpDir}"
# move any previous files to bak
find "${LOCAL_LOCATION_DIR}/" -type f -exec mv -t "${LOCAL_BAKUP_DIR}" {} \+;;
Для ясности:
LOCAL_LOCATION_DIR = /home/mysqlBackupUser/backups/mysql/production1
tmpBackUpDir = /home/mysqlBackupUser/backups/mysql/production1/_lastBackUp/
Чтобы понять, как используется скрипт: В настоящее время я являюсь моим пользователем и
sudo su mysqlBackupUser
Быть как пользователь. Я не уверен, что это проблема, и я не могу проверить, войдя в систему как этот пользователь. Сценарий будет запускаться cron, и он будет действовать как этот пользователь (ключи настроены так, чтобы упростить автоматизацию для этого пользователя), чтобы выполнить процесс, поэтому я не уверен, что это действительно проблема.
Я подтвердил, что владельцем и разрешением всех папок, даже _lastBackUp
принадлежащих mysqlBackupUser
. Я даже установил _lastBackUp
777 для тестирования и все еще получил отказано в разрешениях ...
Моя полная ошибка:
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: Failed to change directory: Permission denied
find: failed to restore initial working directory: Permission denied
Каждый find: Failed to change directory: Permission denied
для каждого файла, к которому я пытаюсь перейти_lastBackUp
Спасибо за понимание этого.
источник
sudo su mysqlBackupUser
он появился, он сохранил пользователя в моем первоначальном каталоге. Странно, что он будет загружать файлы, к которым они принадлежат, и единственной проблемой было создание каталога tmp, тем более что я использую абсолютный путь. В любом случае, теперь это работает благодаря вашему последнему предложению! Спасибо!Если mkdir работает, то, как кажется, если вы запускаете ls -al над родительским каталогом, который является владельцем этих каталогов? Мне кажется, что что-то не так с разрешениями где-то вниз по линии.
источник
drwxrwxrwx 2 mysqlBackupUser mysqlBackupUser 4096 Jul 21 16:24 _lastBackUp