2015-03-16 3 views
0

У меня есть сценарий, расположенный в /home/domain/cron/backup.shразрешений для Bash Script

Я в принципе хочу, чтобы это было CRON задание, которое создает резервную копию базы данных MySQL с помощью туздЫшпр. Команда работает, когда я вошел в систему SSH, однако, когда я хочу запустить файл из задания cron, он возвращается с разрешения.

Папка, которую я хочу сбросить, называется «dbbackup». Если я бегу ls -al на этой папке я получаю:

drwxrwxrwx 2 root root 4096 Mar 16 14:07 ./ 
drwx--x--x 14 gf gf 4096 Mar 13 14:47 ../ 

gf другой пользователь в системе, и пользователь, скрипт CRON работает как.

Когда я запускаю работу CRON, я получаю следующий ответ:

database2015-16-03-2015.sql: Permission denied

Я могу только войти в систему как пользователь называется graphite к SSH, пользователь gf не имеет доступа оболочки, так что я не могут войти в систему как они.

Команда туздЫшпр является:

mysqldump db_2015 > /home/gf/dbbackup/database2015-$(date +%d-%m-%Y)$

Я не знаю, что делать :(

EDIT Для дальнейшего использования и тех, кто встретив то же разочарование у меня было, я нашел решение, вроде.

Первоначально я пытался установить задание cron через панель управления под пользователем gf (который не имеет доступа к SSH, поэтому я не могу войти в командную строку с). Но, конечно, у этого пользователя нет разрешений для запуска этого файла backup.sh.

Итак, я начал хорошо думать, что пользователь создал файл backup.sh с graphite, возможно, я могу запустить работу cron как он. Поэтому я начал искать в crontab и все еще получать ошибки sudo (tty not found) и все. Затем я вернулся к своей команде mysqldump в файле backup.sh, а вместо начал эту команду с sudo, я запустил ее как обычно и разместил -u <username> and --password=<password> Там, и она отлично работает. Я узнал немного больше о разрешениях, и моя база данных теперь работает на ежедневной основе. Ура!

+0

Можете ли вы распечатать разрешения для самого файла? – Promination

+0

Можете ли вы показать команду mysqldump из сценария, пожалуйста? Возможно, вы не отправляете файл в том месте, где вы думаете. – JeffUK

+0

Можете ли вы изменить любые предпосылки на ур машину? – nafas

ответ

2

проблема заключается в следующем:

drwx--x--x 14 gf gf 4096 Mar 13 14:47 ../ 

как вы видите gf можете read, write и excecute, однако другие пользователи могут только excecute.

Примечание это folder. таким образом, если его не readable невозможно получить доступ к файлам внутри.

что вам нужно сделать, это обеспечить эту папку и любую другую родительскую папку is readable.что-то вроде:

chmod 755 <folder name> 

так что вы получите:

drwxr-xr-x 14 gf gf 4096 Mar 13 14:47 ../ 

ПРИМЕЧАНИЕ, если вы не root или gf пользователей. вы не сможете ничего делать.

+0

Да, я думал, что это была проблема. Но когда я зарегистрирован как кто-то ** другой **, чем 'gf', я, похоже, не могу изменить эти разрешения. – Chud37

+0

@ Chud37 вы создали папку dbbackup с корнем. не можете ли вы просто получить доступ к предыдущей папке с правами root? ** ПРИМЕЧАНИЕ ** root может делать что-либо – nafas

+0

нет, потому что команда 'mysqldump' запускается заданием CRON на сервере под пользователем' gf'. – Chud37