MMV не выполняется в скрипте bash (только если выполняется CRON)

это мой скрипт "backup.sh":

#!/bin/bash


date=$(date +"%m-%d-%Y_%r")

mmv -r "uploads/temp/*" "#1\ '$date'"

mv /ftphome/uploads/temp/* /ftphome/uploads/arch/

Моя структура каталогов выглядит так:

dr-xr-xr-x 9 it2 it2 4096 Feb 29 12:09 arch
drwxrwxr-x 2 it2 it2 4096 Feb 29 12:09 temp

Когда я пытаюсь выполнить скрипт из консоли, все работает - как root, потому что в противном случае я получаю сообщение об ошибке «каталог загружает / temp / каталог не разрешает запись» <- я специально установил это разрешение.

К сожалению, когда я пытаюсь запустить этот скрипт кукурузой, команда mmv не выполняется, и все файлы перемещаются в каталог «arch» без суффикса.

Я пытался изменить разрешение chmod на 777 для «временного» каталога, но это не помогло. Я отредактировал crontab как root, поэтому он должен работать как root (информацию, которую я прочитал в этой теме: Как запустить задание cron с помощью команды sudo ).

Кстати, это как будто я пытаюсь выполнить скрипт cron (каждая минута для тестирования):

* * * * * /ftphome/backup.sh
1
задан 13 April 2017 в 15:23

1 ответ

Вам нужно к cd к корректному каталогу сначала. Крон начинает Вас по телефону /.

#!/bin/bash
date=$(date +"%Y-%m-%d_%r")

cd /ftphome || exit

mmv -r "uploads/temp/*" "#1\ '$date'"

mv /ftphome/uploads/temp/* /ftphome/uploads/arch/

На ноте стороны, не помещайте .sh расширение в сценарий удара. Это вводит в заблуждение, так как sh не является ударом.

1
ответ дан 14 April 2017 в 01:23

Другие вопросы по тегам:

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