PostgreSQL两个库间迁移文件

用pg_dump但不产生中间文件,直接在2个数据库之间导数据。

本机执行从本地库导出数据到远程库

pg_dump -h 本地库IP -U postgres dbname | psql -h 目标库IP -U postgres dbname

本机执行从远程数据库导入数据到本地库

pg_dump -h 目标库IP -U postgres dbname | psql -h 本地库IP -U postgres dbname

mysql-物理备份-Percona xtrabackup

xtrabackup是percona公司开发的一个用于mysql物理热备的备份工具。

软件安装后一共有4个可执行文件:

  • innobackupex:perl脚本,用来备份非innodb表,同时会调用xtrabackup来备份innodb表,会和mysql server进行交互。如:加读锁(FTWRL),获取位点(show slave status)等。即封装了xtrabackup

  • xbcrypt:用来解密

  • xbstream:类似tar,一种支持并发写的流文件格式。和xbcrypt都在备份和解压会用到

  • xtrabackup:c/c++编译的二进制,用来备份innodb表,和mysql server没有交互

原理

通信方式:xtrabackup和innobackupex之间的交互和协调是通过控制文件的创建和删除来实现的。

主要文件:

    xtrabackup_suspended_1
    xtrabackup_suspended_2
    xtrabackup_log_copied

例:看看备份时xtrabackup_suspended_2是怎么协调2个工具进程的:

  1. innobackupex在启动xtrabackup进程后,会一直等xtrabackup备份完innodb文件,方式就是等待xtrabackup_suspended_2被创建出

  2. xtrabackup备份完innodb数据后,就在指定目录下创建出xtrabackup_suspended_2,然后等到这个文件被innobackupex删除,

  3. innobackupex 检测到文件 xtrabackup_suspended_2 被创建出来后,就继续往下走;

  4. innobackupex 在备份完非 InnoDB 表后,删除 xtrabackup_suspended_2 这个文件,这样就通知 xtrabackup 可以继续了,然后等 xtrabackup_log_copied 被创建;

  5. xtrabackup 检测到 xtrabackup_suspended_2 文件删除后,就可以继续往下了。

未分类

备份过程图

未分类

说明:

  1. innobackupex 在启动后,会先 fork 一个进程,启动 xtrabackup进程,然后就等待 xtrabackup 备份完 ibd 数据文件;

  2. xtrabackup 在备份 InnoDB 相关数据时,是有2种线程的,1种是 redo 拷贝线程,负责拷贝 redo 文件,1种是 ibd 拷贝线程,负责拷贝 ibd 文件;redo 拷贝线程只有一个,在 ibd 拷贝线程之前启动,在 ibd 线程结束后结束。xtrabackup 进程开始执行后,先启动 redo 拷贝线程,从最新的 checkpoint 点开始顺序拷贝 redo 日志;然后再启动 ibd 数据拷贝线程,在 xtrabackup 拷贝 ibd 过程中,innobackupex 进程一直处于等待状态(等待文件被创建)。

  3. xtrabackup 拷贝完成idb后,通知 innobackupex(通过创建文件),同时自己进入等待(redo 线程仍然继续拷贝);

  4. innobackupex 收到 xtrabackup 通知后,执行FLUSH TABLES WITH READ LOCK (FTWRL),取得一致性位点,然后开始备份非 InnoDB 文件(包括 frm、MYD、MYI、CSV、opt、par等)。拷贝非 InnoDB 文件过程中,因为数据库处于全局只读状态,如果在业务的主库备份的话,要特别小心,非 InnoDB 表(主要是MyISAM)比较多的话整库只读时间就会比较长,这个影响一定要评估到。

  5. 当 innobackupex 拷贝完所有非 InnoDB 表文件后,通知 xtrabackup(通过删文件) ,同时自己进入等待(等待另一个文件被创建);

  6. xtrabackup 收到 innobackupex 备份完非 InnoDB 通知后,就停止 redo 拷贝线程,然后通知 innobackupex redo log 拷贝完成(通过创建文件);

  7. innobackupex 收到 redo 备份完成通知后,就开始解锁,执行 UNLOCK TABLES;

  8. 最后 innobackupex 和 xtrabackup 进程各自完成收尾工作,如资源的释放、写备份元数据信息等,innobackupex 等待 xtrabackup 子进程结束后退出。

在备份进程中都是直接通过操作系统读取数据文件的,只在执行SQL命令时和数据库有交互,基本不会影响数据库的运行,在备份非innodb时会有一段时间只读,对备份innodb表时完全没有影响。

备份innodb文件和非innodb都是通过拷贝文件,但实现的方式不一样,innodb是以page粒度(xtrabackup),在读取每个page时会检验checksum值,保证数据块是一致的;非innodb是cp或者tar(innobackupex),由于对文件做了FTWRL,磁盘上的文件也是完整的,备份的数据也是完整的。

Ubuntu配置SVN,完成自动部署

下面简单记录设置SVN和部署的操作:

1. 安装

apt-get install subversion libapache2-svn

我的服务器上Apache老早就安装过了。如果你的服务器上还没有安装,可以执行:

apt-get install apache2

完成安装之后,Apache的mod_dav_svn默认就是已经启用的了。

2. 创建代码仓库文件夹

这里我把代码集中放在了/var/svn/,先创建这个文件夹:

cd /var/
mkdir svn

3. 修改dav_svn模块配置文件

cd /etc/apache2/mods-enabled/

编辑文件dav_svn.conf ,去掉一些注释符号,修改SVNParentPath路径为上面我们创建的/var/svn/:

vi dav_svn.conf

最终的内容大约是:

<Location /svn>
DAV svn
SVNParentPath /var/svn/
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>

4. 生成认证所需要的密钥文件

上面的AuthUserFile选项对应的文件需要我们自己创建。
我为自己和小连各创建一个账号:

sudo htpasswd -cm /etc/apache2/dav_svn.passwd someone
sudo htpasswd /etc/apache2/dav_svn.passwd someone-else

完成上面的操作之后,让apache重新读入一下配置:

service apache2 reload

这个时候,直接访问http://www.fachun.net/svn,就可以看到要求输入用户名、密码了。
认证之后,会出现一个403 Forbidden,因为我们还未创建repository。

5. 创建repository

cd切换到/var/svn/目录下,再执行:

svnadmin create musicapp

就会在目录下生成musicapp文件夹,这个文件夹下包含了.svn子文件夹。接着修改musicapp文件夹属主,让www-data可读写:

chown -R www-data musicapp
chmod -R g+rws musicapp

好了,现在已经可以开始使用svn了。

6. 安装客户端,checkout到本地

现在我的开发环境是windows,下载安装客户端:
http://tortoisesvn.net/downloads.zh.html
将 http://www.fachun.net/svn/musicapp/ checkout到 E:Pythondjangomusicmusicapp
结束后,添加原有的代码文件再commit。
如此,代码库中就拥有了我最新的完整源代码。

7. 简单的自动部署

我的要求不多,当有人修改或提交了文件,能立即在web上生效。
可以通过在版本库中创建post-commit脚本来实现。
每次我们提交了更改,post-commit脚本都会被自动执行。
比如在我的版本库中,该文件就应该位于 /var/svn/musicapp/hooks/文件夹下,它的内容是:

#!/bin/bash
svn export –force –no-auth-cache –username=someone –password=hispassword <a href="http://www.fachun.net/svn/musicapp" target="_blank">http://www.fachun.net/svn/musicapp</a> /var/www/somewhere/to/place/musicapp
exit 0

http://www.fachun.net/svn/musicapp是repository的地址。
/var/www/somewhere/to/place/musicapp是web应用的存放路径。
–no-auth-cache选项是必须的,否则脚本无法执行成功,svn命令会询问你是否保存密码。
在上传这个post-commit文件之后,请记得为其添加权限:

chmod +x post-commit
chown www-data post-commit

脚本中还可以添加其他内容,比如service apache2 reload,在部署django代码的时候,就可以让修改立即生效。

ubuntu下安裝nodejs最省心的方法

ubuntu的方法很多,apt里面非常旧里,还是4.x的;

源码解压编译其实并不省心,

我是这么安装

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

如果安装nodejs 9.x版本

curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
sudo apt-get install -y nodejs

1感觉这种方法还是非常ok的r;

首先需要下载WebStrom的Linux安装包,地址如下:

https://www.jetbrains.com/webstorm/download/
然后运行如下命令解压并安装并运行WebStorm:

1、解压缩

sudo tar xfz ~/Downloads/WebStorm-16.2.3.tar.gz

2、解压文件移动到/opt下

sudo mv ~/Downloads/WebStorm-162.2228.20 /opt/

3、进入到此文件夹中:

cd /opt/WebStorm-162.2228.20/bin/

4、启动webstorm:

sudo sh webstorm.sh

参考

注册时,在打开的License Activation窗口中选择“License server”,在输入框输入下面的网址:

http://idea.codebeta.cn

Ubuntu安装php curl扩展

1、使用apt-cache搜索curl

sudo apt-cache search curl

在搜索结果里找到类似:

php5.6-curl - CURL module for PHP
php7.1-curl - CURL module for PHP

2、使用apt-get安装

选择php对应版本的curl,使用apt-get安装:

sudo apt-get install php7.1-curl

3、安装完成后重启相关服务,如php,apache

keepalived + haproxy + mysql 构建高可用数据库

keepalived + haproxy + mysql 构建高可用

  • keepalived 的高可用是主备,有一台作为备用
  • keepalived + haproxy 搭建的高可用是可以两台都会调度的高可用

拓扑图:

未分类

keepalived:负责抢占虚拟ip,使用vrrp协议
haproxy:负责做访问调度,减轻单点压力,单独监听一个端口,这里用23306

1、安装mysql

分别在两台机器上面搭建mysql,并做主从配置,这里不做介绍

2、搭建haproxy

  1. download 源码包,下载地址:http://www.haproxy.org/#down
  2. 在81.128和81.129解压缩安装
tar xf haproxy-1.8.4.tar.gz
cd haproxy-1.8.4
yum install -y gcc
make TARGET=linux310 ARCH=x86_64 # uname -a查看主机信息填写
make install SBINDIR=/usr/sbin/ MANDIR=/usr/share/man/ DOCDIR=/usr/share/doc/

3、提供启动脚本

#!/bin/sh
#
# haproxy
#
# chkconfig:   - 85 15
# description:  HAProxy is a free, very fast and reliable solution 
#               offering high availability, load balancing, and 
#               proxying for TCP and  HTTP-based applications
# processname: haproxy
# config:      /etc/haproxy/haproxy.cfg
# pidfile:     /var/run/haproxy.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

exec="/usr/sbin/haproxy"
prog=$(basename $exec)

[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog

cfgfile=/etc/haproxy/haproxy.cfg
pidfile=/var/run/haproxy.pid
lockfile=/var/lock/subsys/haproxy

check() {
    $exec -c -V -f $cfgfile $OPTIONS
}

start() {
    $exec -c -q -f $cfgfile $OPTIONS
    if [ $? -ne 0 ]; then
        echo "Errors in configuration file, check with $prog check."
        return 1
    fi

    echo -n $"Starting $prog: "
    # start it up here, usually something like "daemon $exec"
    daemon $exec -D -f $cfgfile -p $pidfile $OPTIONS
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    # stop it here, often "killproc $prog"
    killproc $prog
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    $exec -c -q -f $cfgfile $OPTIONS
    if [ $? -ne 0 ]; then
        echo "Errors in configuration file, check with $prog check."
        return 1
    fi
    stop
    start
}

reload() {
    $exec -c -q -f $cfgfile $OPTIONS
    if [ $? -ne 0 ]; then
        echo "Errors in configuration file, check with $prog check."
        return 1
    fi
    echo -n $"Reloading $prog: "
    $exec -D -f $cfgfile -p $pidfile $OPTIONS -sf $(cat $pidfile)
    retval=$?
    echo
    return $retval
}

force_reload() {
    restart
}

fdr_status() {
    status $prog
}

case "$1" in
    start|stop|restart|reload)
        $1
        ;;
    force-reload)
        force_reload
        ;;
    check)
        check
        ;;
    status)
        fdr_status
        ;;
    condrestart|try-restart)
        [ ! -f $lockfile ] || restart
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
        exit 2
esac

4、提供配置文件

mkdir /etc/haproxy
mkdir /var/lib/haproxy
useradd -r haproxy
vim /etc/haproxy/haproxy.cfg
global

    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    stats socket /var/lib/haproxy/stats

defaults
    mode                    tcp
    log                     global
    option                  dontlognull
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 600

listen stats
    mode http
    bind :6677 
    stats enable
    stats hide-version              
    stats uri     /haproxyadmin?stats
    stats realm   Haproxy Statistics
    stats auth    admin:admin
    stats admin if TRUE 

frontend  main 
    bind  *:23306
    default_backend             mysql

backend mysql
    balance     leastconn
    server m1 192.168.81.128:3306 check port 3306 maxconn 300
    server m2 192.168.81.129:3306 check port 3306 maxconn 300

5、修改日志系统

###Provides UDP syslog reception //去掉下面两行注释,开启UDP监听

$ModLoad imudp
$UDPServerRun 514

local2.* /var/log/haproxy.log //添加此行
service rsyslog restart

6、启动测试haproxy

service haproxy start 
chkconfig --add haproxy
chkconfig haproxy on
netstat -tnlp
mysql -P23306 -uroot -p123456 -h192.168.81.129 # 查看

server_id,判断是否成功

7、搭建keepalived

1、download 源码包,下载地址:http://www.keepalived.org/download.html

2、在81.128和81.129解压缩安装

tar xf keepalived-1.2.7.tar.gz 
cd keepalived-1.2.7
./configure --prefix=/usr/local/keepalived --sbindir=/usr/sbin/ --sysconfdir=/etc/ --mandir=/usr/local/share/man/
make && make install
chkconfig --add keepalived
chkconfig keepalived on

3、提供配置文件

vim /etc/keepalived/keepalived.conf # 两个机器配置文件不同

! Configuration File for keepalived

global_defs {           
notification_email {          # 忽略
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_haproxy {
    script "/etc/keepalived/chk.sh"     # 检查haproxy的脚本
    interval 2                          # 每两秒检查一次
}

vrrp_instance VI_1 {
    state BACKUP                        # 定义为BACKUP节点
    nopreempt                           # 开启不抢占,另一个不写
    interface ens33
    virtual_router_id 51
    priority 100                        # 开启了不抢占,所以此处优先级必须高于另一台,另一个写99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass abcd
    }
    virtual_ipaddress {
        192.168.81.150                  # 配置VIP
    }
    track_script {
        chk_haproxy                     # 调用检查脚本
    }

    notify_backup "/etc/init.d/haproxy restart"
    notify_fault "/etc/init.d/haproxy stop"
} 

4、创建check文件

vim /etc/keepalived/chk.sh
#!/bin/bash

if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
       /etc/init.d/keepalived stop
fi
chmod +x /etc/keepalived/chk.sh 
service keepalived start

5、测试

ip addr # 查看是否绑定了虚ip
tcpdump -nn -i ens33 vrrp # 抓包查看
http://192.168.81.128:6677/haproxyadmin?stats # 通过haproxy查看状态

Ubuntu设置Grub2密码的方法

Grub是一个来自Gnu项目的启动引导程序,它是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。在Ubuntu系统中,很多用户都会给Grub2设置密码,但具体该怎么操作呢?(以下操作在Ubuntu 17.10中有效)

操作步骤:

leekwen@leekwen:~# grub-mkpasswd-pbkdf2

Enter password:    <<<这里输入你的grub密码
Reenter password:  <<<这里输入你的grub密码

Your PBKDF2 is grub.pbkdf2.sha512.10000.BCxxxxxxxxxxxxx45572D3B4E40500CE

leekwen@leekwen:~# vim /etc/grub.d/40_custom  <<<这是您应该放置自己的自定义设置的地方

在40_custom文件末尾添加如下两行:

set superusers="leekwen"
password_pbkdf2 leekwen grub.pbkdf2.sha512.10000.BCxxxxxxxxxxxxx45572D3B4E40500CE

第二行的格式为:password_pbkdf2 user1 EncryptedPasswordOfUser1

leekwen@leekwen:/etc/grub.d# update-grub  <<<运行此命令才可以生效

  Generating grub.cfg ...
  Found linux image: /boot/vmlinuz-3.11.0-15-generic
  Found initrd image: /boot/initrd.img-3.11.0-15-generic
  Found memtest86+ image: /memtest86+.bin
  done

这样重启后,在grub启动菜单,启动操作系统,编辑引导项,或进入命令行时,都会让你输入:

  username:
  password:

只有用户名(比如我刚刚设置的用户名为:leekwen)及密码正确后(刚刚用grub-mkpasswd-pbkdf2生成的密码),才可以进入启动项的编辑菜单,启动项这一步倒是安全了,记住,修改40_custom后一定要运行“update-grub”命令,这样才能生效!

以上就是Ubuntu中设置Grub2密码的方法,不清楚的用户可以参考上面介绍的操作步骤来设置密码,有需要的用户赶紧试试吧!

使用centos系统中的crontab命令对mongodb定时备份恢复

通过centos脚本来执行备份操作,使用crontab命令实现定时备份与恢复功能,并删除指定天数前的备份

具体操作:

1、创建Mongodb数据库备份目录

mkdir -p /home/backup/mongod_bak/mongod_bak_now
mkdir -p /home/backup/mongod_bak/mongod_bak_list

2、新建Mongodb数据库备份脚本

vi /home/crontab/mongod_bak.sh #新建文件,输入以下代码
#!/bin/sh
DUMP=/usr/local/mongodb/bin/mongodump #mongodump备份文件执行路径
OUT_DIR=/home/backup/mongod_bak/mongod_bak_now #临时备份目录
TAR_DIR=/home/backup/mongod_bak/mongod_bak_list #备份存放路径
DATE=`date +%Y_%m_%d` #获取当前系统时间
DB_USER=username #数据库账号
DB_PASS=123456 #数据库密码
DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份
TAR_BAK="mongod_bak_$DATE.tar.gz" #最终保存的数据库备份文件名
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE #备份全部数据库
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #压缩为.tar.gz格式
find $TAR_DIR/ -mtime +$DAYS -delete #删除7天前的备份文件

3、修改文件属性,使其可执行

chmod +x /home/crontab/mongod_bak.sh

4、修改/etc/crontab #添加计划任务

crontab -e

在下面添加

30 1 * * * root /home/crontab/mongod_bak.sh #表示每天凌晨1点30执行备份

5、重新启动crond使设置生效

/sbin/service crond reload #重新载入配置
chkconfig --level 35 crond on #加入开机自动启动:
/sbin/service crond start  #启动服务
crontab -l #列出crontab文件

每天在/home/backup/mongod_bak/mongod_bak_list目录下面可以看到mongod_bak_2017_02_28.tar.gz这样的压缩文件。

至此,Linux下自动备份Mongodb数据库并删除指定天数前的备份完成。

Mongodb定时恢复备份

恢复全部数据库:

mongorestore Cdrop Cdirectoryperdb 
/home/backup/mongod_bak/mongod_bak_now/2017_02_28/

恢复单个数据库:

mongorestore Cdrop -d dataname Cdirectoryperdb 
/home/backup/mongod_bak/mongod_bak_now/2017_02_28/dataname

Cdrop参数:恢复数据之前删除原来数据库数据,避免数据重复。

Cdirectoryperdb参数:数据库备份目录

-d参数:后面跟要恢复的数据库名称

crontab命令:

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ?νο?),原意是时间。

通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

安装crontab:

[root@CentOS ~]# yum install vixie-cron
[root@CentOS ~]# yum install crontabs

说明:
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

/sbin/service crond start #启动服务
/sbin/service crond stop #关闭服务
/sbin/service crond restart #重启服务
/sbin/service crond reload #重新载入配置

查看crontab服务状态:

service crond status

手动启动crontab服务:

service crond start

其他命令:

#查看crontab服务是否已设置为开机启动,执行命令:
ntsysv

#加入开机自动启动:
chkconfig --level 35 crond on

#列出crontab文件
crontab -l

#编辑crontab文件
crontab -e

#删除crontab文件
$ crontab -r

#恢复丢失的crontab文件
#假设你在自己的$HOME目录下还有一个备份,那么可以将其拷贝到/var/spool/cron/<username>,其中<username >是用户名
#或者使用如下命令其中,<filename>是你在$HOME目录中副本的文件名
crontab <filename>

如何在Ubuntu系统中格式化优盘

2 种方法:

  • 使用磁盘实用程序
  • 使用终端

Ubuntu Linux系统中有多个实用程序,允许你对优盘进行格式化。你可以使用Ubuntu系统自带的磁盘实用程序,或使用终端格式化优盘。不论哪种方法,都可以在几分钟内完成格式化。

一、使用磁盘实用程序

未分类

1、点击Dash按钮,搜索“磁盘”。 在应用程序搜索结果中能看到“磁盘”程序。

未分类

2、从搜索结果中打开磁盘程序。左侧窗格中会出现已连接的设备列表。

未分类

3、从设备列表中选择优盘。它的详细情况会罗列在右侧面板中。

未分类

4、至少选中优盘上的一卷。大部分优盘上只有一卷,如果优盘上有很多卷,你可以选中一卷或全选。

未分类

5、点击右上方的齿轮按钮,选择“格式化”。 打开格式化选项。

未分类

6、选择你想要抹除的数据。快速格式化不会覆盖已存在的数据,而慢速格式化则会零覆盖已存在的数据,删除所有数据并查找错误。

未分类

7、选择文件类型。有多种不同的文件类型可供你选择。

  • 和其它设备兼容性最强的是“FAT”(FAT32)。它基本上适用于所有可使用优盘的电脑和设备。
  • 如果只想用于Linux电脑,请选择“ext3”。这允许你使用Linux高级文件权限。

未分类

8、格式化优盘。点击格式化按钮,等待优盘完成格式化。如果优盘上内容很多,需要抹除的数据很多,那么格式化需要花费一段时间。

二、使用终端

未分类

1、打开终端。可以从Dash上打开终端,或同时按下Ctrl+Alt+T组合键。

未分类

2、输入.lsblk ,按下 回车键。 接着会打开电脑已连接的存储设备列表。

未分类

3、找到优盘。使用 大小 一栏,在列表中找到优盘。

未分类

4、卸载优盘分区。你需要在格式化前卸载优盘。输入以下命令,按下优盘分区标签sdb1。

·sudo umount /dev/sdb1·

未分类

5、抹除设备上所有数据(可选)。你可以输入以下命令,删除所有数据。用优盘标签代替 sdb。

sudo dd if=/dev/zero of=/dev/sdb bs=4k && sync
这个过程会花费一点时间,并且可能出现卡顿现象。

未分类

6、创建一个新的分区表。这个分区表会控制驱动器上的卷。输入以下命令,用优盘标签代替 sdb。

输入·sudo fdisk /dev/sdb· ,按下回车键。按下O创建空白分区表。

未分类

7、按下.N 创建新分区。 输入你想要创建的分区大小。如果想要创建单独的分区,请输入整个优盘的大小。

未分类

8、按下.W 书写表格并退出。 这会花费一会时间。

未分类

9、再次运行.lsblk ,浏览新分区。 它会被列在游览标签的下方。

未分类

10、格式化新卷。此时已创建新卷,你可以将它格式化成选择的文件类型。输入以下命令,将它格式化成兼容性最强的FAT32文件系统。用分区标签代替sdb1。

sudo mkfs.vfat /dev/sdb1

未分类

11、完成后,安全弹出优盘。完成格式化后,安全弹出优盘:

sudo eject /dev/sdb

来源和引文

  • http://askubuntu.com/questions/198065/how-to-format-a-usb-drive
  • http://askubuntu.com/questions/22381/how-to-format-a-usb-flash-drive

Ubuntu下Aria2搭建下载机:Aria2图形管理

Aria2作为一款Linux下的下载神器,很多极客都在使用,可以下载http资源、种子文件、磁力链接等,功能强大,而且整合Chrome插件可以摆脱百度云盘的速度限制。

  • 高速,自动多线程下载;
  • 断点续传;
  • 轻量占用内存非常少,通常情况平均4~9MB内存占用(官方介绍);
  • 多平台。支援 Win/Linux/OSX/Android 等操作系统下的部署;
  • 模块化。分段下载引擎,文件整合速度快;
  • 支持RPC界面远程;
  • 全面支持BitTorrent协议;

Aria2官方项目页面:https://aria2.github.io/

下面介绍Aria2在Ubuntu的搭建方法

1. 搭建Aria2

wget https://github.com/aria2/aria2/releases/download/release-1.22.0/aria2-1.22.0.tar.gz
tar xzvf aria2-1.22.0.tar.gz
cd aria2-1.22.0
./configure
make
make install
man aria2c // 查看aria2c manual

2. 配置Aria2

创建配置文件 参考文档:https://aria2c.com/usage.html

mkdir /etc/aria2/
vim /etc/aria2/aria2.conf
直接进行下一步,不要填写,博主会提供一个配置文件下载
:wq!  //保存

下载博主配置好的conf文件:https://www.buguai.cc/wp-content/uploads/2017/07/aria2.zip

再使用SFTP客户端连接服务器,传到/etc/aria2 文件夹下替换即可。

3. 命令直接调用

直接在命令行下载

aria2c "download.url"

下载完成后自动退出,就和wget 的工作方式一样。

4. RPC Server模式(推荐)

aria2c --conf-path=

Aria2作为后台常驻程序,监测rpc端口的活动情况,添加并下载文件。完成后继续在后台运行。

涉及到命令输入,力求简化,第二种模式明显更省事。

5. 启动Aria2 RPC模式

命令行启动

aria2c --enable-rpc --rpc-listen-all --rpc-allow-origin-all -c  --dir /root/downloads -D (-D daemon模式,用于后台执行)
##开始监听RPC

命令行的模式无疑使用有些麻烦,而且SSH客户端不可能我们一直连接着,我们需要一个WebUI管理监测。

推荐两个:Aria2 Web UI或者YAAW。

Web UI是MD界面的,界面好看,但是因为未知原因博主未能成功使用,所以转而使用YAAW,YAAW相对更简单,基本功能都有,例如添加任务、设置下载目录、设置下载客户端UA、删除、暂停等。

未分类

6. webui-aria2

git clone https://github.com/ziahamza/webui-aria2

如果你不想搭建可使用https://ziahamza.github.io/webui-aria2/,配置数据是存在本地浏览器的,不需要注册。

注意:需要根据情况设置一下Aria2 RPC的地址,一般为Aria2后台进程运行的ip:port,例如192.168.119.100:6800。

YAAW

git clone https://github.com/binux/yaaw

YAAW也有线版本

https://aria2c.com/
https://binux.github.io/yaaw/demo/

注意:需要根据情况设置一下Aria2 RPC的地址,一般为Aria2后台进程运行的ip:port,例如192.168.119.100:6800。

其他版本:方便我们使用Aria2

7. Windows下图形版本

Aria2c Remote Control

https://sourceforge.net/projects/aria2cremote/

8. 给jsonrpc加上验证

使用token验证(建议使用)
需要1.18.4以上版本,帐号密码方式将在后续版本中停用!

配置文件

# token验证
rpc-secret=secret

命令行

使用--rpc-secret=xxxxxx选项

启用验证后,使用https://token:secret@hostname:port/jsonrpc的地址格式设置secret。

使用密码验证

需要1.15.2以上,1.18.6以下版本
1.18.4新增了--rpc-secret ,设置的RPC授权令牌, 取代--rpc-user--rpc-passwd选项

配置文件

#用户名
rpc-user=username
#密码
rpc-passwd=passwd

命令行

使用 --rpc-user=user --rpc-passwd=pwd 选项

启用验证后,使用https://username:passwd@hostname:port/jsonrpc的地址格式设置密码。

对于RPC模式来说, 界面和后端是分离的, 只要给后端设置密码即可. 前端认证什么的是毫无意义的。

9. 其它相关

YAAW搭配脚本

迅雷离线(需会员账号)

Chrome Extension: ThunderLixianAssistant
UserScript: ThunderLixianExporter

旋风离线

UserScript: XuanFengEx
UserScript: LixianExporter

百度网盘

Chrome Extension: BaiduExporter
Firefox Addons: BaiduExporter
UserScript: BaiduPanDownloadHelper

115网盘

Chrome Extension: 115exporter

其他脚本

Chrome Extension

添加到aria2

Chrome Download Helper