• shell 同时执行多任务下载视频


    本文为博主原创,转载请注明出处:

      shell 脚本不支持多线程,但我们需要用shell 脚本同时跑多个任务时怎么让这些任务并发同时进行,可以采用在每个任务 后面 添加一个  & ,让其在后台运行,相互之间不影响;

       这边的使用场景是 需要用shell 脚本同时下载很多个视频,如果用shell 脚本一个一个进行下载则很慢,所以考虑用shell 的& 同时执行下载任务;

      1. 寻找一个可无限下载视频的地址;由于 腾讯视频,优酷视频等视频下载时,都需要登录,通过翻阅各种网站,

        找到一个 可以无限下载视频的网址:https://mixkit.co/free-stock-video/ ; 点开该网址,随便点击打开一个网站,如下所示,找到视频地址:

                          

       通过界面找寻到一个视频下载链接 如下: https://assets.mixkit.co/videos/preview/mixkit-countryside-meadow-4077-large.mp4

       查看很多视频之后,发现这个网站对同一个分类的视频,按照序号递增的方式进行命名的,所以只需要找到 一个文件下载路径之后,就可以修改路径中的数字,获得新的下载链接进行下载;

      

      2. 编写shell 脚本进行下载:

        思路:将下载的链接放入到一个文件中,shell 脚本不断遍历文件中的url 链接,进行后台同时并发下载:

        创建 downloadUrl.txt ,并放入 文件路径:

    https://assets.mixkit.co/videos/preview/mixkit-countryside-meadow-4074-large.mp4
    https://assets.mixkit.co/videos/preview/mixkit-countryside-meadow-4075-large.mp4
    https://assets.mixkit.co/videos/preview/mixkit-countryside-meadow-4076-large.mp4
    https://assets.mixkit.co/videos/preview/mixkit-countryside-meadow-4077-large.mp4

        创建 download.sh , 脚本与 downloadUrl.txt 位于同一个目录,脚本内容如下:

    复制代码
    #!/bin/bash
    for content in `cat downloadUrl.txt`
    do
    {
        wget $content
    }&
    done
    复制代码

      3. 执行脚本如下:

    sh download.sh

      

     

       运行之后就会发现,会同时执行下载任务,从而实现并发下载

      

     

  • 相关阅读:
    wpf DataGridComboBoxColumn 如何显示一个多列的下拉框?_成就一亿技术人!
    一篇经典的 Redis 面试资料「处女座笔记」「吐血推荐」...
    docker删除镜像、容器命令
    浅谈小程序开源业务架构建设之路
    深入理解Java多线程之线程间的通信方式(上)
    视频基础知识(一)
    【韭菜拾遗】Coqui TTS: a deep learning toolkit for Text-to-Speech
    Python自定义异常 Python Custom Exception
    手撕 视觉slam14讲 ch7 / pose_estimation_3d2d.cpp (2)
    使用Http Interface客户端解析text/html类型参数
  • 原文地址:https://www.cnblogs.com/zjdxr-up/p/16428922.html