标签: Shell

  • LNMP一键安装包(Linux+Nginx+Mysql/MariaDB+PHP)图文教程

    LNMP一键安装包(Linux+Nginx+Mysql/MariaDB+PHP)图文教程

    前面的文章里我们讲到了一些Linux中常用的shell一键安装包

    下面我们介绍一下军哥的LNMP一键安装包,也很稳定很实用。

    系统需求:

    • CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin/Aliyun/Amazon/Mint Linux发行版
    • 需要5GB以上硬盘剩余空间,MySQL 5.7,MariaDB 10至少9GB剩余空间
    • 需要128MB以上内存(128MB小内存VPS,Xen需有SWAP,OpenVZ至少要有128MB以上的vSWAP或突发内存),注意小内存请勿使用64位系统!
    • 安装MySQL 5.6或5.7及MariaDB 10必须1G以上内存,更高版本至少要2G内存!。
    • 安装PHP 7及以上版本必须1G以上内存!。
    • VPS或服务器必须已经联网且必须设置的是网络源不能是光盘源,同时VPS/服务器DNS要正常!
    • Linux下区分大小写,输入命令时请注意!
    • 如有通过yum或apt-get安装的MySQL/MariaDB请自行备份数据等相关文件!
    • CentOS 5,Debian 6及之前版本其官网已经结束支持无法使用!
    • Ubuntu 18+,Debian 9+,Mint 19+,Deepin 15.7+及所有新的Linux发行版只能使用1.6进行安装!

    LNMP一键安装包 V1.6 已经在Vultr、搬瓦工、Linode、DigitalOcean、RamNode、BuyVM、阿里云等众多VPS的CentOS 6-7、RHEL 6-8、Fedora 21-30、Debian 7-9、Ubuntu 10.04-19.04的32位和64位系统上测试通过(CentOS 5,Debian 6及之前版本其官网已经结束支持无法使用,Debian9上Apache需选2.4.26版本以上。

    安装步骤:

    1、使用putty或类似的SSH工具登陆VPS或服务器( [Vutlr]Linux Cetnos Debian 使用putty登陆 vultr VPS 服务器 );


    登陆后运行:screen -S lnmp
    如果提示screen: command not found 命令不存在可以执行:yum install screen 或 apt-get install screen安装,详细内容参考screen教程 Linux Screen 简单用法 图文教程 。

    2、下载并安装LNMP一键安装包:

    您可以选择使用下载版(推荐美国及海外VPS或空间较小用户使用)或者完整版(推荐国内VPS使用,国内用户可用在下载中找国内下载地址替换),两者没什么区别,只是完整版把一些需要的源码文件预先放到安装包里。

    安装LNMP稳定版

    wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && ./install.sh lnmp

    如需要安装LNMPA或LAMP,将./install.sh 后面的参数lnmp替换为lnmpa或lamp即可。如需更改网站和数据库目录、自定义Nginx参数、PHP参数模块、开启lua等需在运行./install.sh 命令前修改安装包目录下的 lnmp.conf 文件

    运行上述LNMP安装命令后,会出现如下提示:

    目前提供了较多的MySQL、MariaDB版本和不安装数据库的选项,需要注意的是MySQL 5.6,5.7及MariaDB 10必须在1G以上内存的更高配置上才能选择!如仅需安装数据库在lnmp安装包目录下执行:./install.sh db

    输入对应MySQL或MariaDB版本前面的序号,回车进入下一步.

    3、安装完成

    设置MySQL的root密码(为了安全不输入直接回车将会设置为lnmp.org#随机数字)如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除(个别情况下是只需要Backspace键)。输入后回车进入下一步,如下图所示:

    询问是否需要启用MySQL InnoDB,InnoDB引擎默认为开启,一般建议开启,直接回车或输入 y ,如果确定确实不需要该引擎可以输入 n,(MySQL 5.7+版本无法关闭InnoDB),输入完成,回车进入下一步。

    注意:选择PHP 7+版本时需要自行确认PHP版本是否与自己的程序兼容。

    输入要选择的PHP版本的序号,回车进入下一步,选择是否安装内存优化:

    可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车,直接回车为默认为不安装。

    如果是LNMPA或LAMP的话还会提示设置邮箱和选择Apache“Please enter Administrator Email Address:”,需要设置管理员邮箱,该邮箱会在报错时显示在错误页面上。
    再选择Apache版本

    按提示输入对应版本前面的数字序号,回车。

    提示”Press any key to install…or Press Ctrl+c to cancel”后,按回车键确认开始安装。
    LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin等软件及相关的组件。

    安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。

    如果显示Nginx: OK,MySQL: OK,PHP: OK

    并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并提示安装使用的时间及Install lnmp V1.6 completed! enjoy it.的话,说明已经安装成功。
    某些系统可能会一直卡在Install lnmp V1.5 completed! enjoy it.不自动退出,可以按Ctrl+c退出。

    安装完成接下来开始使用就可以了,按添加虚拟主机教程,将域名解析到VPS或服务器的IP上,解析生效即可使用。

    4、安装失败

    如果出现类似上图的提示,有一个或几个没安装成功表明安装失败!!需要用winscp或其他类似工具,将/root目录下面的lnmp-install.log下载下来,到LNMP支持论坛发帖注明你的系统发行版名称及版本号、32位还是64位等信息,并将lnmp-install.log压缩以附件形式上传到论坛,我们会通过日志查找错误,并给予相应的解决方法。

  • Linux如何使用UnixBench脚本测试系统服务器性能跑分 图文教程

    Linux如何使用UnixBench脚本测试系统服务器性能跑分 图文教程

    UnixBench是一款开源的用于测试Unix、BSD、Linux系统基本性能的工具,比较通用于Linux系统VPS性能测试,主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算、C库等系统基准性能提供测试数据。关于如何使用UnixBench为Linux系统VPS进行跑分测试,在此文章当中为大家介绍一个开源的UnixBench一键跑分测试脚本,使用非常简单,下面简单的几段命令即可实现一键跑分测试。

    脚本命令

    如果你想使用UnixBench测试你的服务器性能,请使用SSH工具连接你的服务器后执行下面命令。搬瓦工BandwagonHost VPS 使用Putty连接SSH图文教程。[Vutlr]Linux Cetnos Debian 使用putty登陆 vultr VPS 服务器。脚本默认使用UnixBench5.1.3版本,因为大多VPS都没有显卡或者是集成显卡,不需要进行图像性能测试,所以作者注释了关于graphic的测试项。此脚本运行测试时间大约10-30分钟,跑分结束后得分越高性能越好。

    wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh
    chmod +x unixbench.sh
    ./unixbench.sh

    二、测试效果

    ————————————————————————
    Benchmark Run: Wed Dec 19 2018 19:50:58 – 20:19:17
    2 CPUs in system; running 1 parallel copy of tests

    Dhrystone 2 using register variables 21092505.4 lps (10.0 s, 7 samples)
    Double-Precision Whetstone 2655.9 MWIPS (9.9 s, 7 samples)
    Execl Throughput 845.3 lps (30.0 s, 2 samples)
    File Copy 1024 bufsize 2000 maxblocks 213526.5 KBps (30.0 s, 2 samples)
    File Copy 256 bufsize 500 maxblocks 55094.0 KBps (30.0 s, 2 samples)
    File Copy 4096 bufsize 8000 maxblocks 669049.2 KBps (30.0 s, 2 samples)
    Pipe Throughput 262532.9 lps (10.0 s, 7 samples)
    Pipe-based Context Switching 32340.5 lps (10.0 s, 7 samples)
    Process Creation 1722.2 lps (30.0 s, 2 samples)
    Shell Scripts (1 concurrent) 2072.5 lpm (60.0 s, 2 samples)
    Shell Scripts (8 concurrent) 384.7 lpm (60.0 s, 2 samples)
    System Call Overhead 308320.4 lps (10.0 s, 7 samples)

    System Benchmarks Index Values BASELINE RESULT INDEX
    Dhrystone 2 using register variables 116700.0 21092505.4 1807.4
    Double-Precision Whetstone 55.0 2655.9 482.9
    Execl Throughput 43.0 845.3 196.6
    File Copy 1024 bufsize 2000 maxblocks 3960.0 213526.5 539.2
    File Copy 256 bufsize 500 maxblocks 1655.0 55094.0 332.9
    File Copy 4096 bufsize 8000 maxblocks 5800.0 669049.2 1153.5
    Pipe Throughput 12440.0 262532.9 211.0
    Pipe-based Context Switching 4000.0 32340.5 80.9
    Process Creation 126.0 1722.2 136.7
    Shell Scripts (1 concurrent) 42.4 2072.5 488.8
    Shell Scripts (8 concurrent) 6.0 384.7 641.1
    System Call Overhead 15000.0 308320.4 205.5
    ========
    System Benchmarks Index Score 363.6

    ————————————————————————
    Benchmark Run: Wed Dec 19 2018 20:19:17 – 20:47:45
    2 CPUs in system; running 2 parallel copies of tests

    Dhrystone 2 using register variables 40199084.3 lps (10.0 s, 7 samples)
    Double-Precision Whetstone 5315.7 MWIPS (9.9 s, 7 samples)
    Execl Throughput 1321.4 lps (30.0 s, 2 samples)
    File Copy 1024 bufsize 2000 maxblocks 329910.4 KBps (30.0 s, 2 samples)
    File Copy 256 bufsize 500 maxblocks 89161.7 KBps (30.0 s, 2 samples)
    File Copy 4096 bufsize 8000 maxblocks 1131551.0 KBps (30.0 s, 2 samples)
    Pipe Throughput 496906.4 lps (10.0 s, 7 samples)
    Pipe-based Context Switching 89894.4 lps (10.0 s, 7 samples)
    Process Creation 3208.2 lps (30.0 s, 2 samples)
    Shell Scripts (1 concurrent) 2742.8 lpm (60.0 s, 2 samples)
    Shell Scripts (8 concurrent) 380.8 lpm (60.2 s, 2 samples)
    System Call Overhead 562093.4 lps (10.0 s, 7 samples)

    System Benchmarks Index Values BASELINE RESULT INDEX
    Dhrystone 2 using register variables 116700.0 40199084.3 3444.7
    Double-Precision Whetstone 55.0 5315.7 966.5
    Execl Throughput 43.0 1321.4 307.3
    File Copy 1024 bufsize 2000 maxblocks 3960.0 329910.4 833.1
    File Copy 256 bufsize 500 maxblocks 1655.0 89161.7 538.7
    File Copy 4096 bufsize 8000 maxblocks 5800.0 1131551.0 1951.0
    Pipe Throughput 12440.0 496906.4 399.4
    Pipe-based Context Switching 4000.0 89894.4 224.7
    Process Creation 126.0 3208.2 254.6
    Shell Scripts (1 concurrent) 42.4 2742.8 646.9
    Shell Scripts (8 concurrent) 6.0 380.8 634.7
    System Call Overhead 15000.0 562093.4 374.7
    ========
    System Benchmarks Index Score 618.8
    ————————————————————————

  • 如何利用Shell脚本程序将WordPress网站中的新浪图片批量下载到服务器本地

    如何利用Shell脚本程序将WordPress网站中的新浪图片批量下载到服务器本地

    自从前段时间新浪开启防盗链不能做位图床之后,我们写了【新浪图床近期不稳定论自建图床的重要性】,建议大家自建图床。下面我们说一下如何快速得将WordPress站点中使用到的新浪图片利用Shell脚本迅速本地化。本方法使用所有的网站,我们这里只是将WordPress作为举例说明。

    WordPress备份、准备工作

    备份是基础工作,大家一定要经常备份。

    备份完成后我们这里将sql文件保存为:『 jiloc.sql 』

    找出所有新浪图床上的照片

    如果你是打开你网站的每一个页面,然后一个个去找的话,请打开窗户,确认下面没人,然后把电脑丢下去。老季这里提供一个非常快速的方法找出所有新浪图床上的图片,我们先来看看新浪图床图片 URL 的特点(主要是 ·wp_posts· 表):

    http://wx4.sinaimg.cn/mw690/644ee728gy1fv0uy0qkzaj20im0okdtl.jpg
    http://wx1.sinaimg.cn/mw690/644ee728gy1fv0wn9qytrj21hc0ein4u.jpg
    http://wx3.sinaimg.cn/mw690/644ee728gy1fv0wn8y93cj20sg07pq94.jpg

    我们需要一个正则表达式把上面的链接都匹配出来

    • 最前面的协议有两种情况 http 和 https,所以我们用 https?来匹配(问号表示前面的‘s’要么出现 0 次,要么出现 1 次)
    • 后面的 ws 开头的主机好像有 4 台,然后我就算他 10 台,所以对应的正则为 ws[0-9]
    • ‘/large/491ea66cgy1g26kbwkrgpj22001hs7wh’这一段杂七杂八的用[a-Z0-9/]+?来匹配,‘[a-Z0-9/]’这里表示不管你是字母还是数字,还是/都给你匹配上,后面的+表示前面的数字、字母会出现一次或者多次,最后的问号是用来防止过渡匹配的,在这不加问号也没问题。
    • 最后面的图片格式用.(jpg|png|gif)来匹配。

    最终的正则表达式为

    https?://wx[0-9].sinaimg.cn[a-Z0-9/]+?.(jpg|png|gif)

    当然,如果你的网站数据库非常大的话,你需要把这条正则写的尽量的精确,免得半天都跑不出来结果,比方说你全站 https 就可以这样写:

    http://wx[1-4].sinaimg.cn/large/[a-Z0-9/]+?.(jpg|png|gif)

    正则有了,我们现在去网站的数据库文件里面把所有新浪图床上的图片捞出来,执行下面的命令,最后的 jiloc.sql 是网站数据库备份文件。

    正则有了,我们现在去网站的数据库文件里面把所有新浪图床上的图片捞出来,在终端中执行下面的命令,最后的 jiloc.sql 是网站数据库备份文件。

    grep -Eo 'https?://wx[0-9].sinaimg.cn[a-Z0-9/]+?.(jpg|png|gif)' jiloc.sql

    我们这里站点用的图片全部都是 mw690 目录的图片。这里一定要注意,后面SQL语句替换的时候要用到。

    注:这里只是正则匹配图片,并没有去重功能。

    利用Shell脚本迅速将sql语句中的新浪图片下载到本地

    我们在shell中用一个 for 循环把新浪上的图片全下载下来,建议在网站根目录新建一个图片目录,把你网站数据库备份文件 jiloc.sql 也放到这里,然后把图片全下载到这里,在图片目录里面执行,这里将图片目录设定在 wp-content/uploads/images/:

    for i in `grep -Eo 'https?://wx[0-9].sinaimg.cn[a-Z0-9/]+?.(jpg|png|gif)' jiloc.sql`;do wget $i;done

    注意:本方法仅适用在Linux系统Shell终端中。

    去除重复图片

    如果有重复的文件则会命名为:xxxxx.jpg.1 , xxxxx.png.2 之类,可以通过在shell中执行下面命令批量删除。

    rm -rf *.jpg.[0-9]

    这里的.jpg需要自己分析下载到本地的文件名。

    删除当前目录下的.sql文件

    rm *.sql

    WordPress使用新浪图床后图片无法打开,如何将图片迁移到本地完整过程 图文教程

  • Mysql 表崩溃后Crashed 自动修复备份数据库 Shell 脚本

    Mysql 表崩溃后Crashed 自动修复备份数据库 Shell 脚本

    前面我们写了Linux 自动备份Mysql Shell 脚本,但是最近论坛被疯狂灌水,导致一些表崩溃Crashed了,所以我们mysqldump的时候会报错,以下脚本将会先检查数据库里所有的表(如果有问题将自动执行修复动作),然后再自动备份整个数据库。

    #!/bin/sh 
    d=`date "+%Y-%m-%d-%H-%M-%S"` 
    v_user="数据库用户名" 
    v_password="密码" 
    v_database="数据库名"
    #开始repair整个数据库里的表,如果-r 修复不了,可以用-o 参数代替修复
    mysqlcheck -u$v_user -p$v_password $v_database -r > /root/RepairLog/$d.log
    # 以下是自动备份脚本动作
    mysqldump -u$v_user -p$v_password $v_database --default-character-set=gbk | gzip > $FP$FName.sql.gz   


    加入自动运行之前可以先运行测试一下是否有报错:
    sh /backup/sqlDump.sh

    crontab 定时任务:

    如果没有问题的话然后加入到crontab里

    crontab -e

    内容如下:

    30 3 * * 1 sh /backup/sqlDump.sh

    每个星期一的早上3:30 自动进行备份。

  • Linux 下自动定时备份Mysql Shell 脚本

    Linux 下自动定时备份Mysql Shell 脚本

    公司服务器刚刚迁移到新的配置下,需要做自动备份,我们这边写了一下自动备份的脚本,这里做一下记录。

    SHELL脚本:

    创建脚本 /bakcup/sqlDump.sh ,内容如下:

    #!/bin/sh
    d=`date "+%Y-%m-%d-%H-%M-%S"`
    v_user="数据库用户名"
    v_password="密码"
    v_dbname="数据库名"
    FName=jiloc.com_$d
    FP=/backup/
    mysqldump -u$v_user -p$v_password $v_dbname --default-character-set=gbk | gzip > $FP$FName.sql.gz

    加入自动运行之前可以先运行测试一下是否有报错:

    sh /backup/sqlDump.sh

    crontab 定时任务:

    如果没有问题的话然后加入到crontab里

    crontab -e

    内容如下:

    30 3 * * 1 sh /backup/sqlDump.sh

    每个星期一的早上3:30 自动进行备份。

  • linux shell 命令行 wordpress 替换 谷歌字体 fonts.googleapis 一键命令

    最近谷歌字体又无法正常打开,打开wordpress 后台又很慢,所以我们只能用命令去替换谷歌字体了。我们这里使用的是奇虎360的公共库,具体命令如下:

    sed -i "s/https://fonts.googleapis.com/http://fonts.useso.com/g" `grep -lr "https://fonts.googleapis.com" /目录`
  • last: /var/log/wtmp: No such file or directory 错误解决方法图文教程

    今天在使用last 命令时出现了如下错误:

    root@instance-642k0w3w:~# last
    last: /var/log/wtmp: No such file or directory
    Perhaps this file was removed by the operator to prevent logging last info.

    显示没有这个文件,可能是之前清楚日志的时候连文件一起删除了。现在给出解决方案,在shell命令行里直接输入:

    touch /var/log/wtmp ;?chown root:utmp /var/log/wtmp ;?chmod 0664 /var/log/wtmp

    再次执行 last 命令,就正常了。

WeChat
↑