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及其正在做什么的纪录片,但我不明白命令的其余部分是做什么的。有什么帮助吗?
答案 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
的名称包含空格,则此脚本将失败。