1

Как я могу записать операцию TAR в файл журнала?

tar -czvf arh.tar.gz public_html > 1.log

TAR -czvf работал спасибо, ребята!

Теперь в bash-скрипте:

for i in */ ; do
    sitefolder="$HOME/domains/${i%%/}/public_html"
    if [ -d "$sitefolder" ]
    then
        ( tar -czvf $tbackups/$i".tar.gz" public_html >> $logs/backups.log ; )
    fi
done

Как я могу сделать вывод в файл журнала, как:

domain.com успешно заархивирован domain1.com успешно заархивирован и так далее.

2 ответа2

3

Ключевой вопрос заключается в том, что

tar -czf arh.tar.gz public_html 1

не создает никакого вывода вообще. Так что тебе нужно как минимум

tar -czvf arh.tar.gz public_html 1

создать любой вывод. Но так как вывод идет в STDERR вместо STDOUT, вам понадобится

tar -czvf arh.tar.gz public_html 1 2> 1.log

поймать любой вывод в файле журнала


Обычно лучше задавать новые вопросы вместо того, чтобы продолжить в той же теме, но здесь мы идем

for i in */ ; do
    sitefolder="$HOME/domains/${i%%/}/public_html"
    if [ -d "$sitefolder" ]; then
        echo "Backing up ${i%%/}" >> $logs/backups.log
        tar -czvf $tbackups/$i".tar.gz" public_html 2>> $logs/backups.log
        echo "Backup of ${i%%/} successfull" >> $logs/backups.log
    fi
done
2
tar czvf arh.tar.gz public_html 1 >1.log 2>&1 

Я добавил v чтобы он был подробным, то есть он выведет список файлов / каталогов, в которых он находится, и он перейдет в 1.log .

Вы уверены, что хотите использовать public_html и файл / каталог с именем 1 ? Потому что это то, что написано

Я также вынул - перед опциями (деготь совместит с очень старыми версиями этой команды, которые не использовали - поэтому он интерпретирует первый аргумент, который принимает в качестве опции по умолчанию. Это немного более совместимо.

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