分类 linux服务器 下的文章

介绍一款linux多线程下载工具axel(用以替代wget)

Axel 通过打开多个 HTTP/FTP 连接来将一个文件进行分段下载,从而达到加速下载的目的。对于下载大文件,该工具将特别有用。如果下载过程中下载中断可以再执行下载命令即可恢复上次的下载进度。我常用Axel替代wget(文中也给出了部分解决axel报Too many redirects的办法)

如下图:

wget的时候只有300多KB/s, axel开了个10个线程达到了2465KB/s,真是棒棒哒!

axel.jpg

下面介绍axel的安装和使用!

安装:

centos下安装:

yum install axel

axel2.jpg

没有源的,可以去网上下载axel的rpm包安装或者下载tar.gz的源文件编译安装。

Debian/Ubuntu安装Axel:

apt-get install axel

选项介绍:

-s x 最高速度x 
-n x 连接数x
-o f 保存为文件f 
-S [x] 搜索镜像 
-H x 添加头文件字符串x(指定 HTTP header) 
-U x 设置用户代理(指定 HTTP user agent) 
-N 不使用代理服务器 
-q 静默模式 (不显示每个线程下载进度)
-v 更多状态信息 
-a Alternate progress indicator 
-h 帮助 
-V 版本信息

使用举例:
如指定100个线程下载,存到 ~/:

axel -n 100 -o ~/ 'http://mirrors.zju.edu.cn/ubuntu-releases/18.04.2/ubuntu-18.04.2-desktop-amd64.iso' 

不显示每个线程的进度

axel -n 100 -o ~/ -q http://mirrors.zju.edu.cn/ubuntu-releases/18.04.2/ubuntu-18.04.2-desktop-amd64.iso

搭建视频流服务器

为了实现视频点播和直播,整了一天,看了好多资料,终于有了不小进展,在这里分享给大家。
什么是视频点播?可能你对这个名词不熟悉,但是爱奇艺,腾讯视频等这些视频播放软件想必你肯定知道。没错,视频点播就是在线观看某个视频。额,视频直播?这个就不解释了吧,美女直播,游戏直播等等,哈哈。

首先我们看如何实现视频点播,视频点播支持flv文件及H264编码视频,ACC编码音频的mp4文件:
第一步,创建单独的目录(因为软件较多,容易混乱),下载需要的软件:
我们需要下载nginx,pcre,zlib,openssl以及nginx-rtmp-module

mkdir ser_work

cd ser_work

wget http://nginx.org/download/nginx-1.10.3.tar.gz

wget http://zlib.net/zlib-1.2.11.tar.gz

wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz

wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz

wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

第二步解压前四个文件

tar -zxvf 文件名

第三步 编译安装nginx:

./configure --prefix=/usr/local/nginx --with-debug --with-pcre=../pcre-8.40 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.0.2k --add-module=../nginx-rtmp-module-master
make
sudo make install

第四步,进入 /usr/local/nginx/conf,配置nginx.conf文件,在文件末尾添加如下内容:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}

rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        application hls {
            live on;
            hls on;
            hls_path /usr/local/nginx/html/hls;
            hls_fragment 3s;
            hls_playlist_length 6s;
        }
        #application rtmplive {
        #    live on;
        #    max_connections 1024;
        #    record off;
        #}
    }
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8080;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
        # 网页直播地址设置
        location /hls {
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            root html;
            add_header Cache-Control no-cache;
        }
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}   

视频推流

  • 使用推流工具OBS进行推流
  • 推流地址及秘钥
    rtmp://127.0.0.1:1935/hls
    7s3iodndk
  • 网页观看地址
    http://127.0.0.1:8080/hls/7s3iodndk.m3u8
    VLC观看地址:rtmp://127.0.0.1:1935/hls/7s3iodndk

WX20180611-112600@2x.png

WX20180611-112908@2x.png

Ubuntu 16.04下安装MySQL

简单分享Ubuntu 16.04下安装MySQL的过程。
首先执行下面三条命令:

sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev

安装成功后可以通过下面的命令测试是否安装成功:

sudo netstat -tap | grep mysql

出现如下信息证明安装成功:
blog1.png

可以通过如下命令进入MySQL服务:

mysql -uroot -p你的密码

现在设置mysql允许远程访问,首先编辑文件/etc/mysql/mysql.conf.d/mysqld.cnf:

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

注释掉bind-address = 127.0.0.1:
blog2.png

保存退出,然后进入mysql服务,执行授权命令:

grant all on *.* to root@'%' identified by '你的密码' with grant option;
flush privileges;

然后执行quit命令退出mysql服务,执行如下命令重启mysql:

service mysql restart

现在在Mac Os下可以使用navicat远程连接Ubuntu下的MySQL服务:
WX20180611-105507@2x.png

CentOS操作系统防火墙添加例外端口

CentOS6与CentOS7添加防火墙例外端口的命令不用,需单独来说:

(1)CentOS6下添加防火墙例外端口

#vim/ets/sysconfig/iptables

在 -A INPUT -m state--state NEW -m tcp -p tcp --dport 22 -j ACCEPT

一行的后台添加类似的一行命令即可,如

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

然后重启防火墙服务:

#service iptables restart/start/stop

(2)CentOS7下添加防火墙例外端口

firewall-cmd --zone=public --add-port=8180/tcp --permanent #添加8180端口

firewall-cmd --reload #重新加载策略配置,以使新配置生效

注:禁止firewall开机启动为:systemctldisable firewalld.service

-A INPUT -m state --state NEW -m tcp -p tcp --dport 1216 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT