我的服务器使用的是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的那一行)失败了。 '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}]"
谢谢。
答案 0 :(得分:1)
尝试这样的事情:
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;
我们创建一个日期作为变量。 我们使用输出变量中的日期变量创建输入和输出变量。 然后执行命令并检查它是否正确执行。