通过linux.sh脚本移动文件
我已经设置了一个脚本,可以将我的通过linux.sh脚本移动文件,linux,bash,shell,Linux,Bash,Shell,我已经设置了一个脚本,可以将我的/var/www目录自动备份到/root/Dropbox 当Cron执行脚本时,备份文件被移动到/root/,而不是/root/Dropbox/。我已经将Dropbox目录的权限设置为722,因此写入它应该没有问题 脚本如下所示: NOW=$(date +"%Y-%m-%d-%H-%M") #backup site if tar -zcvf site-www-var-$NOW.tar.gz '/var/www'; then echo "Backup o
/var/www
目录自动备份到/root/Dropbox
当Cron执行脚本时,备份文件被移动到/root/
,而不是/root/Dropbox/
。我已经将Dropbox目录的权限设置为722
,因此写入它应该没有问题
脚本如下所示:
NOW=$(date +"%Y-%m-%d-%H-%M")
#backup site
if tar -zcvf site-www-var-$NOW.tar.gz '/var/www'; then
echo "Backup of data created." 1>&2
if mv /home/site-www-var-* /root/Dropbox/; then
echo "Data Moved." 1>&2
else
echo "Data move failed." 1>&2
exit 1
fi
else
echo "Data backup failed." 1>&2
exit 1
fi
Backup of data created.
Data Moved.
输出如下:
NOW=$(date +"%Y-%m-%d-%H-%M")
#backup site
if tar -zcvf site-www-var-$NOW.tar.gz '/var/www'; then
echo "Backup of data created." 1>&2
if mv /home/site-www-var-* /root/Dropbox/; then
echo "Data Moved." 1>&2
else
echo "Data move failed." 1>&2
exit 1
fi
else
echo "Data backup failed." 1>&2
exit 1
fi
Backup of data created.
Data Moved.
正如@La Kantara所说,这一行
if tar -zcvf site-www-var-$NOW.tar.gz '/var/www'; then
可能正在执行命令的用户的当前工作目录中创建tarball文件
因此,我只需将tar
命令更改为使用tarball的完整文件路径
if tar -zcvf /root/Dropbox/site-www-var-$NOW.tar.gz '/var/www'; then
^^^ ^^^^^^^
在这种情况下,如果tar-zcvf站点www-var-$NOW.tar.gz'/var/www',您的mv
命令也将变得多余;然后
如果tar-zcvf/root/Dropbox/site www-var-$NOW.tar.gz'/var/www';然后命令可能没有移动。。在/root/dropbox下创建文件的是tar,我应该在问题中使用root
,而不是home
(您的工作目录是什么?)运行/root
中的tar
命令,但是您的mv
命令期望数据在/home
中。为什么不在需要的地方创建文件呢tar
可以处理路径文件,就像mv
@tripleee一样,这是否意味着我可以拥有tar-zcvf/root/Dropbox/site www-var-$NOW.tar.gz'/var/www'
?