Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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
调试使用bash文件和nodejs执行的mysql查询_Mysql_Node.js_Bash_Cron - Fatal编程技术网

调试使用bash文件和nodejs执行的mysql查询

调试使用bash文件和nodejs执行的mysql查询,mysql,node.js,bash,cron,Mysql,Node.js,Bash,Cron,我试图创建一个cron作业来将数据插入表中,但它不起作用,我甚至找不到正确调试它的方法。 这个想法非常基本:获取文件路径,发布它并执行script.sh文件。脚本在文件内容上循环并将其插入数据库 HTML输入部分非常简单: <form action="http://127.0.0.1:9080/config" method="post"> <input type="text" name="data" style="width: 500px;"> <i

我试图创建一个cron作业来将数据插入表中,但它不起作用,我甚至找不到正确调试它的方法。 这个想法非常基本:获取文件路径,发布它并执行
script.sh
文件。脚本在文件内容上循环并将其插入数据库

HTML输入部分非常简单:

<form action="http://127.0.0.1:9080/config" method="post">
    <input type="text" name="data" style="width: 500px;">
    <input type="submit" id="button" value="config"></input>
</form>
我认为问题出现在我的bash文件中:

#! /bin/bash


config=$(date +%s)

#copying what in target to $config ( example: $config = 11444345)
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 (file? countS!)
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 -password< /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
#/bin/bash
配置=$(日期+%s)
#将目标中的内容复制到$config(示例:$config=11444345)
rsync-rvzh$1/var/lib/tomcat7/webapps/ROOT/DataMining/target>/var/lib/tomcat7/webapps/ROOT/DataMining/$config
countC=0
计数=`wc-l/var/lib/tomcat7/webapps/ROOT/DataMining/$config | sed's/^\([0-9]*\).$/\1/'`
算了吧--
算了吧--
算了吧--
读取行C时#读取行(文件?计数!)
做
如果[“$countC”-gt 0];然后
如果[“$countC”-lt“$countS”];然后
FILENAME=“/var/lib/tomcat7/webapps/ROOT/DataMining/target/”$LINEC
计数=0
countW=0
读行时
做
对于$LINE中的单词;
做
echo“插入到数据挖掘.data(字、行、numWordLine、文件)值(“$word”、“$count”、“$countW”、“$FILENAME”);”>/var/lib/tomcat7/webapps/ROOT/DataMining/query
mysql-u root-password/var/lib/tomcat7/webapps/ROOT/DataMining/query
让我们倒计时++
完成
countW=0
算了吧++
完成<$FILENAME
计数=0
rm-f/var/lib/tomcat7/webapps/ROOT/DataMining/query
rm-f/var/lib/tomcat7/webapps/ROOT/DataMining/$config
fi
fi
让我们看看C++
完成
我有一个目录中包含文本的文件,我将这个目录路径(以各种可能的方式…)传递给config,但由于某些原因,没有任何内容进入数据库


你知道我错过了什么吗?或者我如何调试它?所谓调试,我的意思是检查脚本是否执行了查询以及执行了什么查询,或者甚至只是从bash文件中回显……非常感谢您的任何想法,thx

粘贴脚本以查看一些主要问题。在深入研究之前,缺乏报价是一种风险。另外,考虑将一个示例输入连同它的预期输出一起,这样我们就可以调试BASH脚本了。可以通过在Sabang-Load中添加<代码> -Vx>代码>,在调试冗长模式下运行shell脚本。它将在运行前打印每一行,并替换其变量。
#! /bin/bash


config=$(date +%s)

#copying what in target to $config ( example: $config = 11444345)
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 (file? countS!)
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 -password< /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