[英]Moving a file by linux .sh scripting
我已经设置了一个脚本来执行我的/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.
正如@La Kantara 所说,这条线
if tar -zcvf site-www-var-$NOW.tar.gz '/var/www'; then
很可能在执行命令的用户的Current working directory
中创建 tarball 文件。
因此,我只需更改tar
命令以使用 tarball 的完整文件路径。
if tar -zcvf /root/Dropbox/site-www-var-$NOW.tar.gz '/var/www'; then
^^^ ^^^^^^^
在这种情况下,您的mv
命令也会变得多余
如果 tar -zcvf site-www-var-$NOW.tar.gz '/var/www'; 然后
如果 tar -zcvf /root/Dropbox/site-www-var-$NOW.tar.gz '/var/www'; 然后
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.