Использование переменной оболочки внутри команды - PullRequest
1 голос
/ 25 сентября 2010

мой сервер использует CentOS 5.5 (почти Red Hat Linux).

Я хочу сделать резервную копию набора изображений в файлах с отметкой времени. Этот код будет работать:


z_cmd1=$(tar cvzf /home/user1/public_ftp/misc/pics_20100925_142230.tar.gz /home/user1/public_html/misc/_pics_var/F???????.jpg)
echo "tar output =[${z_cmd1}]"

но, конечно, я хочу, чтобы отметка времени была автоматической.

Следующий код не работает. Каким-то образом третья строка (та, что содержит смолу) не работает. 'tar' что-то делает, но не создает никакого файла в ожидаемой папке назначения. Почему?


z_fname=$(date +"/home/user1/public_ftp/misc/pics_%Y%m%d_%H%M%S.tar.gz")
echo "File name =[${z_fname}]"
z_cmd1=$(tar cvzf ${z_fname} /home/user1/public_html/misc/_pics_var/F???????.jpg)
echo "tar output =[${z_cmd1}]"

Спасибо.

1 Ответ

1 голос
/ 25 сентября 2010

Попробуйте это примерно так:

mydate=`date +"%m-%d-%Y"`;
input="/home/user1/public_html/misc/_pics_var/F???????.jpg";
output="/home/user1/public_ftp/misc/pics_$mydate.tar.gz";
tar cvzf $output $input && echo "$output created succesfully!";
if [ ! $? == 0 ]; then echo "$output failed"; fi;

Мы создаем дату как переменную.Мы создаем входные и выходные переменные, используя переменную даты в выходной переменной.Затем выполните команду и убедитесь, что она выполнена без ошибок.

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