在Linux中创建多线程

时间:2015-03-10 03:52:01

标签: linux multithreading

我有一台Linux计算机并希望执行以下操作(如果可能,请执行以下两个独立的操作/过程):

  1. 每隔x分钟向远程计算机运行一系列CLI命令,以查看是否存在文件。如果是,我想开始将此文件下载到我的目录之一。文件可能很大,可能有很多远程计算机,所以理想情况下我应该将每个连接视为一个自己的进程。

  2. 检查我的文件系统中是否有新文件到达。如果有,我想浏览这个文件,用一些算法分析内容,然后将结果存储在我安装的数据库中。然后删除已分析的文件。

  3. 有关如何以“最佳”和最可靠的方式执行此操作的任何建议?脚本?的Java / C /等?多线程或只是循环内容的单个进程?结果应该是应该运行几个月而不停止。

    非常欢迎任何建议和/或示例代码!

    谢谢! ž

2 个答案:

答案 0 :(得分:0)

对于#1,您可以使用crantab(http://unixhelp.ed.ac.uk/CGI/man-cgi?crontab+5)来运行脚本。

我认为您可以使用Shell,Python,Ruby来完成任务

答案 1 :(得分:0)

下载时你可以使用类似脚本的东西(未测试和不完整):


function download_and_analyze(link){
    Z=mktemp
    cd $Z
    wget -c -t0 -q -C $link 
    # analyze algorithm here
    cd /tmp
    rm -rf $Z
 }

for A in $REMOTEFILE; do 
      download_and_analyze($A) &
done

这只是一个临时实现它作为shell脚本。 wget保证了可靠性。

如果它位于ssh可以访问的另一台计算机上,你也可以使用rsync。

欢呼声