2

Мой crontab (работает как пользователь) содержит следующую команду

00-59 00-23 * * *  /usr/bin/smbget -R smb://192.168.10.32/Data -u USER -p PASSWORD

Но я получаю ошибку, так как

У вас недостаточно прав для доступа к smb://192.168.10.32/Data/

Но ту же команду я могу выполнить (работая от имени пользователя) из командной строки.

Как дать разрешения crontab для решения проблемы?

2 ответа2

5

У меня была та же проблема, и мне потребовалось около 6 часов, чтобы выработать ответ. Вы получаете это бесплатно:

Если вы вошли в систему должным образом, у вас будет переменная среды USER = root - этого не будет в вашей среде, когда вы запускаете задание из crontab.

Чтобы установить переменную окружения для одной команды в crontab, просто поместите ее непосредственно перед вашей командой (т.е. после указания времени / дня). Итак, в вашем случае:

00-59 00-23 * * *  USER=root /usr/bin/smbget -R smb://192.168.10.32/Data -u USER -p PASSWORD
3

Я бы настроил Autofs, чтобы позаботиться о монтировании файловой системы SMB. Вы можете использовать файл учетных данных, чтобы сделать его немного более безопасным. Оттуда ваш cronjob просто cp /mnt /smbshare /data /home /whomever /whereever.

Autofs не оставляет навсегда установленным общий ресурс SMB, и это поможет вам избежать проблем, связанных с поиском этих инструментов SMB внутри cron.

https://help.ubuntu.com/community/Autofs

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .