Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过linux.sh脚本移动文件_Linux_Bash_Shell - Fatal编程技术网

通过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'