繁体   English   中英

通过 linux .sh 脚本移动文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM