读取 .env 环境变量文件,并使用 mysqldump 导出数据库 作者: Chuwen 时间: 2022-12-10 分类: 其他分类 评论 ## 代码 如果没有 mysqldump 可以使用此命令安装<仅限于 CentOS 系统> ```shell yum install -y holland-mysqldump.noarch ``` --- ```shell #!/bin/bsh function echo_error() { [ $# -ne 1 ] && return 0 echo -e "\033[31m $1 \033[0m" } function echo_danger() { [ $# -ne 1 ] && return 0 echo -e "\033[41;37m $1 \033[0m" } function echo_info() { [ $# -ne 1 ] && return 0 echo -e "\033[32m $1 \033[0m" } function echo_success() { [ $# -ne 1 ] && return 0 echo -e "\033[42;37m $1 \033[0m" } function echo_warning() { [ $# -ne 1 ] && return 0 echo -e "\033[33m $1 \033[0m" } function now_time() { echo $(date '+%Y-%m-%d %H:%M:%S') } if [ ! -f ".env" ]; then echo_danger ".env 不存在,终止执行" exit 127 fi # 将 .env 文件导入环境变量(排除注释行) export $(cat .env | grep -v "^#") # 导出每个表前 1000 条数据 function export_limit_1000() { mysqldump --column-statistics=0 \ --host="${DB_HOST}" \ --user="${DB_USERNAME}" --password="${DB_PASSWORD}" \ "${DB_DATABASE}" \ --where="true limit 1000" >mysqldump_"$(date '+%Y-%m-%d_%H:%M:%S')".sql } function export_sql() { echo_info "[`now_time`] >>> 开始导出数据库" mysqldump --column-statistics=0 \ --host="${DB_HOST}" \ --user="${DB_USERNAME}" --password="${DB_PASSWORD}" \ "${DB_DATABASE}" \ >mysqldump_"$(date '+%Y-%m-%d_%H:%M:%S')".sql echo_success "[`now_time`] <<< 导出数据库完成" } export_sql ``` ## 执行结果 ![](https://cdn.nowtime.cc/2022/12/10/3529888146.png)
Linux 搭建网关服务器,使内网服务器访问公网 作者: Chuwen 时间: 2021-12-26 分类: Linux 评论 有这么一个需求: - 其中 1 台主机,可以访问公网 - 其它 2 台主机,不能访问公网,但是这几台主机处于同一个局域网可以相互访问 大概就是如下图的拓扑图 ![](https://cdn.nowtime.cc/2021/12/26/724184458.png) 想要实现的就是,主机 2、主机 3 能够通过**主机 1**访问到公网 ## 首先在可以访问公网的服务器上配置网关服务器 - 系统:`CentOS Linux release 8.3.2011` - 局域网网段:`192.168.58.0/24` - 本机局域网 IP:`192.168.58.3` ```shell # step 1:关闭并永久禁用firewalld服务 systemctl stop firewalld systemctl disable firewalld # step 2:安装iptables-services yum -y install iptables-services # step 3:开启内核转发 vim /etc/sysctl.conf #添加一条规则 net.ipv4.ip_forward = 1 sysctl -p #使之生效 # step 4:配置iptables转发规则,主要下这个网段要改为你的局域网网段 iptables -t nat -A POSTROUTING -s 192.168.58.0/24 -j MASQUERADE #step 5:保存iptables规则 service iptables save #如果不执行save,重启失效 ``` ## 配置其它不能访问公网的服务器的网关地址 - 假设网卡是:`eth0` 1. 查看本机器的 IP 地址 `ip addr`,如图所示,这台机器的局域网 IP 是 `192.168.58.4` ![](https://cdn.nowtime.cc/2021/12/26/2380189393.png) 2. 修改网卡的网关地址 `vi /etc/sysconfig/network-scripts/ifcfg-eth0` 未修改前是长这样的: ![](https://cdn.nowtime.cc/2021/12/26/2461410265.png) 我们需要改成这样 ``` BOOTPROTO="static" IPADDR="192.168.58.4" PREFIX="24" # 请注意这里是网关地址 GATEWAY="192.168.58.3" # DNS 服务器改成能服务的就行(也就是说内网/公网 IP DNS 服务器都可以) DNS1="223.5.5.5" ``` ![](https://cdn.nowtime.cc/2021/12/26/3508620127.png) 3.然后重启即可生效 ## 测试访问 ![](https://cdn.nowtime.cc/2021/12/26/2846226688.png) ---- 参考文章:https://blog.51cto.com/u_11451275/3225436
使用 JPEGTRAN 生成 jpg 渐进式图片 - 在 Mac or Unix/Linux 系统安装 JPEGTRAN 作者: Chuwen 时间: 2021-11-23 分类: Linux 评论 ## 下载源码并安装 去这里找最新的源码下载地址:http://www.ijg.org/files/ 这里以 `http://www.ijg.org/files/jpegsrc.v9d.tar.gz` 为例 ```shell wget http://www.ijg.org/files/jpegsrc.v9d.tar.gz tar -xzvf jpegsrc.v9d.tar.gz cd jpeg-9d ./configure sudo make install ``` ## 查看相关命令使用说明 ```shell jpegtran -h cjpeg -h djpeg -h rdjpgcom -h wrjpgcom -h ``` ## 使用方法 ```shell jpegtran -copy none -progressive input.jpg > output.jpg ``` ## 小提示 如果出现 **Not a JPEG file: starts with 0x2d 0x2d** 提示,可以尝试使用 `convert` 命令转换 --- 本文撰写参考:https://www.phpied.com/installing-jpegtran-mac-unix-linux/
执行命令 `goaccess -a -d -f www.xxxx.com_access_2021-11-09_145601.log -o ~/Downloads/go-access.html` 报以下错误: 作者: Chuwen 时间: 2021-11-09 分类: Linux 评论 ### 执行命令 `goaccess -a -d -f www.xxxx.com_access_2021-11-09_145601.log -o ~/Downloads/go-access.html` 报以下错误: ``` ➜ Downloads goaccess -a -d -f www.xxxx.com_access_2021-11-09_145601.log -o ~/Downloads/go-access.html [SETTING UP STORAGE www.xxxxxx.com_access_2021-11-09_145601.log] {0} @ {0/s} ==47696== GoAccess - Copyright (C) 2009-2020 by Gerardo Orellana ==47696== https://goaccess.io - ==47696== Released under the MIT License. ==47696== ==47696== FILE: www.xxxxxxxx.com_access_2021-11-09_145601.log ==47696== 已解析 10 行 出现以下错误: ==47696== ==47696== Token '08/Nov/2021' doesn't match specifier '%d' ==47696== Token '08/Nov/2021' doesn't match specifier '%d' ==47696== Token '08/Nov/2021' doesn't match specifier '%d' ==47696== Token '08/Nov/2021' doesn't match specifier '%d' ==47696== Token '08/Nov/2021' doesn't match specifier '%d' ==47696== Token '08/Nov/2021' doesn't match specifier '%d' ==47696== Token '08/Nov/2021' doesn't match specifier '%d' ==47696== Token '08/Nov/2021' doesn't match specifier '%d' ==47696== Token '08/Nov/2021' doesn't match specifier '%d' ==47696== Token '08/Nov/2021' doesn't match specifier '%d' ==47696== ==47696== 格式错误 - 请检查你的日志/日期/时间格式 ``` ### `~/.goaccessrc` 配置文件内容 ``` time-format %H:%M:%S date-format %d/%b/%Y log-format %h %^[%d:%t %^] "%r" %s %b ``` ### 解决方案 参考:https://github.com/allinurl/goaccess/issues/1563 将语言环境变量设置为英语即可 ``` LANG="en_US.UTF-8" goaccess -a -d -f www.xxxx.com_access_2021-11-09_145601.log -o ~/Downloads/go-access.html # 或者 LANG="en_US.UTF-8" bash -c 'goaccess -a -d -f www.xxxx.com_access_2021-11-09_145601.log -o ~/Downloads/go-access.html' ```
Linux 安装官方 speedtest 作者: Chuwen 时间: 2021-07-24 分类: Linux 评论 ## 序言 原来 `speedtest-cli` 并不是官方出的,如果你要安装要按照 https://www.speedtest.net/apps/cli 的安装教程来 我这就说下在 Linux 怎么去安装运行 speedtest ## 下载 首先访问 https://www.speedtest.net/apps/cli 选择适合你的 Linux 发行版系统,然后选择对应 CPU 架构的即可 ![](https://cdn.nowtime.cc/2021/07/24/3887586944.png) 我这边选择 `aarch64` 的,个人理解是针对 ARM64 位架构的 CPU,复制下下载链接,然后使用 wget 下载: ``` # wget 下载链接 wget https://install.speedtest.net/app/cli/ookla-speedtest-1.0.0-aarch64-linux.tgz ``` ## 安装 ``` # 解压文件 tar zxvf 下载的文件名 tar zxvf ookla-speedtest-1.0.0-aarch64-linux.tgz # 运行 ./speedtest ``` ## 运行结果 > 得出结论,至少在赣州移动是没有改变上下对等这个规则的 ``` root@Chainedbox:~# ./speedtest ============================================================================== You may only use this Speedtest software and information generated from it for personal, non-commercial use, through a command line interface on a personal computer. Your use of this software is subject to the End User License Agreement, Terms of Use and Privacy Policy at these URLs: https://www.speedtest.net/about/eula https://www.speedtest.net/about/terms https://www.speedtest.net/about/privacy ============================================================================== Do you accept the license? [type YES to accept]: yes License acceptance recorded. Continuing. Speedtest by Ookla Server: Guangzhou Unicom 5G - Guangzhou (id = 26678) ISP: China Mobile Guangdong Latency: 39.65 ms (0.08 ms jitter) Download: 359.46 Mbps (data used: 449.1 MB) Upload: 311.90 Mbps (data used: 556.8 MB) Packet Loss: 0.0% Result URL: https://www.speedtest.net/result/c/d3010769-3ca8-4b85-82ff-c2a3f41f7896 ```