什么是rsync -rvzh命令的purpase

时间:2015-11-02 23:26:42

标签: bash

我试图了解这两个命令在做什么:

config=$(date +%s)
rsync -rvzh $1 /var/lib/tomcat7/webapps/ROOT/DataMining/target > /var/lib/tomcat7/webapps/ROOT/DataMining/$config

这一行出现在一个更大的脚本中 - script.sh看起来像这样:

#! /bin/bash

config=$(date +%s)
rsync -rvzh $1 /var/lib/tomcat7/webapps/ROOT/DataMining/target > /var/lib/tomcat7/webapps/ROOT/DataMining/$config

countC=0
countS=`wc -l /var/lib/tomcat7/webapps/ROOT/DataMining/$config | sed 's/^\([0-9]*\).*$/\1/'`
let countS--
let countS--
let countS--

while read LINEC #read line
do  
    if [ "$countC" -gt 0 ]; then
        if [ "$countC" -lt "$countS" ]; then

            FILENAME="/var/lib/tomcat7/webapps/ROOT/DataMining/target/"$LINEC
            count=0
            countW=0

            while read LINE
            do
                for word in $LINE;
                do 
                    echo "INSERT INTO data_mining.data (word, line, numWordLine, file) VALUES ('$word', '$count', '$countW', '$FILENAME');" >> /var/lib/tomcat7/webapps/ROOT/DataMining/query
                    mysql -u root -Alaba1515< /var/lib/tomcat7/webapps/ROOT/DataMining/query
                    echo > /var/lib/tomcat7/webapps/ROOT/DataMining/query
                    let countW++
                done
                countW=0
                let count++
            done < $FILENAME
            count=0

            rm -f /var/lib/tomcat7/webapps/ROOT/DataMining/query
            rm -f /var/lib/tomcat7/webapps/ROOT/DataMining/$config

        fi
    fi
    let countC++
done < /var/lib/tomcat7/webapps/ROOT/DataMining/$config #finish while

我能够找到很多关于rsync及其正在做什么的纪录片,但我不明白命令的其余部分是做什么的。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

第一个命令将当前时间(自纪元以来的秒数)分配给shell变量config。例如:

$ config=$(date +%s)
$ echo $config
1446506996

rsync是一个文件复制实用程序。因此,第二个命令生成参数1中列出的目录的备份副本(称为$1)。备份副本位于/var/lib/tomcat7/webapps/ROOT/DataMining/target。复制内容的日志文件保存在var/lib/tomcat7/webapps/ROOT/DataMining/$config

rsync -rvzh $1 /var/lib/tomcat7/webapps/ROOT/DataMining/target > /var/lib/tomcat7/webapps/ROOT/DataMining/$config

rsync选项意味着:

  • -r告诉rsync将文件以递归方式复制到子目录中

  • -v告诉它是详细的,以便显示复制的内容。

  • -z告诉它在从一个位置转移到另一个位置期间压缩文件。

  • -h告诉它以人类可读的格式显示输出中的任何数字。

请注意,由于$1不在双引号内,如果目录$1的名称包含空格,则此脚本将失败。