LINUX.ORG.RU
ФорумAdmin

Перенос файлов скриптом


0

1

Скриптом надо переносить обновляемый файл При запуске вручную (через sudo) все штатно проходит

при запуске через крон от рута файл не обновляется но источник сносится

find /путь/источника -name "*-timelapse.mpg" |while read filename; do
  ffmpeg -i "$filename"  -g 1 -qscale 7 -y -f swf "${filename//.mpg/}.swf"
    mv -vf "${filename//.mpg/}.swf"  /путь/назначения
done



Последнее исправление: Pterodaktil (всего исправлений: 3)

Ответ на: комментарий от Pterodaktil

Или заливать дневное видео после его создания

Pterodaktil
() автор топика

пишите в скрипте полные пути до бинарников или PATH подправьте в скрипте или настройках cron-а

hizel ★★★★★
()
Ответ на: комментарий от hizel

а как это влияет на выполнение? другие файлы (кторые не надо заменять) переносятся нормально. Проблема возникает при переносе уже имеющегося в папке назначения файла

попробую сделать mv c опцией-u

Pterodaktil
() автор топика

Попробуй

unalias mv &>/dev/null

в начало. И да, при запуске из крона отсутствие полных путеи или установки PATH - ламерство.

router ★★★★★
()
Ответ на: комментарий от router

А разве они в настройках баша не прописаны? Можно поподробней почему надо дублировать прописанные пути из настроек баша?

Pterodaktil
() автор топика
Ответ на: комментарий от Pterodaktil

Они прописаны не в «настройках баша», а в профилях пользователей (в т.ч. в /etc/profile)

Знаешь, в чём разница между 'su' и 'su -' ? Тут то же самое. При запуске из крона как правило НЕ используется профиль и НЕ устанавливаются переменные окружения из профиля.

router ★★★★★
()

ну, и самое мистическое.. %)

#!/bin/bash в начало скрипта - может, у тебя в кроне какой другой шел по умолчанию, который не понимает ${filename//.mpg/}.swf

aol ★★★★★
()
Ответ на: комментарий от Pterodaktil

почитай почту от рута. когда в кроне проблемы, рута по почте уведомляют. ну, и логи тоже никто не отменял, кстати :)

aol ★★★★★
()
Ответ на: комментарий от Pterodaktil

добавь в скрипт немного логов :) всё, что ты выведешь в stdout во время выполнения задачи крон, будет намылено руту, если не указано другое.

и $? твой друг. она расскажет, как завершилась предыдущая команда.

то есть,

aol ★★★★★
()
Ответ на: комментарий от aol

нипапал, пардон...
так вот, то есть...

#!/bin/bash

/path/to/do_something
echo "Something exited with $?"

aol ★★★★★
()
Ответ на: комментарий от Pterodaktil

Убрал из куска конвертацииЗапустил отдельной командой - вроде заработало:

find /путь/к/источнику-name "*-timelapse.swf" -exec cp -f {} /путь/назаначения \;
Pterodaktil
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.