Jump to content



IBMx345

Administrators
  • Content Count

    109
  • Joined

  • Days Won

    20

IBMx345 last won the day on December 27 2019

IBMx345 had the most liked content!

Community Reputation

36 Excellent

Recent Profile Visitors

301 profile views
  1. vpngate.net 的镜像站点列表 (更新于 2019-12-14 20:05:27 UTC): http://91.207.174.26:10967/cn/ (Mirror location: United Kingdom) http://5.181.235.14:29916/cn/ (Mirror location: United Kingdom) http://200.2.166.122:6137/cn/ (Mirror location: Suriname) http://109.111.243.206:17579/cn/ (Mirror location: Serbia) http://202.5.221.82:10467/cn/ (Mirror location: Japan) http://76.175.155.141:5395/cn/ (Mirror location: United States) VPN Gate 源 (主) 网站 URL https://www.vpngate.net/
  2. vpngate.net 的镜像站点列表 (更新于 2019-12-02 18:41:05 UTC): http://91.207.174.26:10967/cn/ (Mirror location: United Kingdom) http://200.2.166.122:6137/cn/ (Mirror location: Suriname) http://37.120.154.37:23010/cn/ (Mirror location: United Kingdom) http://5.181.235.14:29916/cn/ (Mirror location: United Kingdom) http://153.126.174.56:40216/cn/ (Mirror location: Japan) http://103.250.73.15:33674/cn/ (Mirror location: Singapore) VPN Gate 源 (主) 网站 URL https://www.vpngate.net/
  3. General Cache Information PHP Version 7.3.12 Memcached Host 1.127.0.0.1:11211 Total Memcache Cache 123.0 MBytes Memcache Server Information 127.0.0.1:11211 [Flush this server] Start Time 2019/11/25 01:01:12 Uptime 1 week, 3 hours and 31 minutes Memcached Server Version 1.5.20 Used Cache Size 10.5 MBytes Total Cache Size 123.0 MBytes Host Status Diagrams Cache Usage Hits & Misses Free: 112.5 MBytes (91.5%) Hits: 30261947 (99.2%) Used: 10.5 MBytes (8.5%) Misses: 241957 (0.8%) Cache Information Current Items(total) 6327 (247656) Hits 30261947 Misses 241957 Request Rate (hits, misses) 49.40 cache requests/second Hit Rate 49.01 cache requests/second Miss Rate 0.39 cache requests/second Set Rate 0.45 cache requests/second
  4. 获取Linux命令帮助的六种方法 获取帮助是学习Linux第一个必须要掌握的命令 Linux提供了极为详细的帮助工具及文档,一定要养成查帮助文档的习惯(没必要记忆所有东西),可以大大减少需要记忆的东西并提高效率 # help Command 适用于内部命令 举例: # type cd cd is a shell builtin # help cd # type ls ls is aliased to `ls --color=auto' # help ls -bash: help: no help topics match `ls'. Try `help help' or `man -k ls' or `info ls'. # Command --help/-h 适用于外部命令 例如: # ls --help # man Command manual 手册,是分章节;man # Command (#表示章节号) 1、所有用户可以使用的命令 2、系统内核调用,不是每个命令都有系统调用(如:man 2 read) 3、库调用 4、特殊文件,如:/dev/tty1 5、文件格式(命令配置文件的语法,如:man 5 passwd) 6、游戏相关 7、杂项 8、管理员命令,如:fdisk man命令查询操作参考《vi,vim用法》中命令模式 看懂man命令语法 []:可选内容 <>:必须给出内容 a|b|c:多选一 ...:可以有多个 # info Command 有超链接稳文档,info是信息页,提供作者、版本,什么时候发布等更详细信息,man是手册告诉你怎么用 README 绝大多数程序都有相应的帮助文档,保存在/usr/share/doc文件夹中 如: # ls /usr/share/doc/ntp-4.2.4p8/ ChangeLog COPYRIGHT NEWS Google
  5. acme.sh 自动更新 RSA、ECC 双证书实践 不知不觉,一年的通配符证书就快到期了。作为一名技术人员,我是不准备续费了。恰巧知道一个 acme.sh 的项目,它是一个实现 ACME 协议的客户端,能够向支持 ACME 协议的 CA 申请证书(如 Letsencrypt)。 最重要的是它对接了大多数的域名服务商,能够通过域名服务商提供的 API,自动的添加 DNS 验证记录进行全自动颁发证书,还可以模拟 HTTP 服务器进行文件验证。so,不管你的证书期限是 90 天,还是更短,再也不用担心证书过期的问题了。 至于 ACME 协议是什么?Automatic Certificate Management Environment 自动化证书管理环境,通过它我们可以实现证书的自动申请以及部署,可以大大的节省人员的管理及额外的配置工作。 ACME 的通信过程通过一系列的 API 进行,你可以通过类似 https://example.com/directory 获取可以请求的 API 列表,如 Letsencrypt。当然再通信过程中采取了很多的安全措施,如在 RFC 文档中你可能会看 JWT、JWS、JOSE、JWK、reply-nonce等名词,看起来就陌生。如果你不是技术人员,也大可不必去研究那些东西,知道怎么用就行。 安装 acme.sh 好了,废话不多说。acme.sh 下载非常的简单,官方提供了 2 中方式: 通过执行在线脚本安装: $ curl https://get.acme.sh | sh # 或者 $ wget -O - https://get.acme.sh | sh 通过 git 安装: git clone https://github.com/Neilpang/acme.sh.git cd ./acme.sh ./acme.sh --install 在安装的过程中,做了 3 件事: 复制 acme.sh 到你的 HOME 目录($HOME):~/.acme.sh/。之后所有生成的证书也会放在这里。 创建别名:acme.sh=~/.acme.sh/acme.sh。 创建 cron 每日任务去检查是否有证书需要更新。 如: 0 0 * * * "/home/user/.acme.sh"/acme.sh --cron --home "/home/user/.acme.sh" > /dev/null 使用 acme.sh 如何使用?acme.sh 的功能非常的强大,使用方式确非常的简单。提醒,该脚本需要在你的服务器下执行。官方地址:How-to-issue-a-cert。 关于 ECC 证书,你只需要再末尾添加 --keylength ec-256。如: $ acme.sh --issue -w /home/wwwroot/example.com -d example.com -d www.example.com --keylength ec-256 可选长度有: ec-256 (prime256v1, “ECDSA P-256”) ec-384 (secp384r1, “ECDSA P-384”) ec-521 (secp521r1, “ECDSA P-521”, which is not supported by Let’s Encrypt yet.) 申请证书 单域名 $ acme.sh --issue -d example.com -w /home/wwwroot/example.com 多域名 $ acme.sh --issue -d example.com -d www.example.com -d cp.example.com -w /home/wwwroot/example.com 这里的 -w 指定的是 web 服务器根目录,请确保有写入权限。example.com 就是你要签发的域名,建议主域放在第一个。颁发好的证书会放在 ~/.acme.sh/example.com/。证书将会每 60 天自动更新。 Standalone 模式 这个模式会自己启动一个 HTTP/HTTPS 的服务器,供 CA 进行域名验证。所以,你需要确保 80⁄443 端口是没有被占用的。 # 确保你的 80 端口未被占用 $ acme.sh --issue -d example.com --standalone # 当然你也可以指定端口,但前提是你会通过代理或负载均衡转发到该端口。 # 因为 letsencrypt 可只会访问 80 端口哦。 $ acme.sh --issue -d example.com --standalone --httpport 88 当然还有 --tls 模式,使用 443 端口。 Apache/Nginx 模式 这个模式会检查 apache/nginx 现有的配置。在证书颁发成功后,自动的更改配置文件,达到自动申请自动部署的目的,非常的方便: $ acme.sh --issue -d example.com --apache $ acme.sh --issue -d example.com --nginx DNS 手动模式 $ acme.sh --issue --dns -d example.com -d www.example.com -d cp.example.com 会有类似以下信息: Add the following txt record: Domain:_acme-challenge.example.com Txt value:9ihDbjYfTExAYeDs4DBUeuTo18KBzwvTEjUnSwd32-c Add the following txt record: Domain:_acme-challenge.www.example.com Txt value:9ihDbjxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Please add those txt records to the domains. Waiting for the dns to take effect. 你需要手动添加如上域名记录。 如果你需要更新证书,请执行: $ acme.sh --renew -d example.com DNS API模式 通过域名服务商提供的 API 模式,进行动态的添加 DNS 记录,实现自动证书更新及部署。这也是本博客采用的方式(未采用 Nginx 方式也是有原因的)。 DNS API支持列表,涵盖了国内外主流的域名服务商。具体的使用方法你需要根据服务商进行不同设置 How to use DNS API。 这里提一下,阿里云: 进入控制台,鼠标指向你的用户名。 点击 accesskeys,点击继续 AccessKey。 创建 accessKey。 混合模式 该模式下,为每个域名指定不同的验证方式,但 example.com 和 www.example.com 必须在同一根目录。 $ acme.sh --issue \ -d example.com -d www.example.com -w /home/wwwroot/ \ -d bb.com --dns dns_cf \ -d cc.com --apache \ -d dd.com -w /home/wwwroot/dd.com 安装证书 再颁发证书之后,我们可能需要将证书拷贝到指定位置。那么我们需要使用到 --install-cert 命令,请尽量避免手动拷贝证书。 # Apache $ acme.sh --install-cert -d example.com \ --cert-file /path/to/certfile/in/apache/cert.pem \ --key-file /path/to/keyfile/in/apache/key.pem \ --fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \ --reloadcmd "service apache2 force-reload" # Nginx $ acme.sh --install-cert -d example.com \ --key-file /path/to/keyfile/in/nginx/key.pem \ --fullchain-file /path/to/fullchain/nginx/cert.pem \ --reloadcmd "service nginx force-reload" 这里会将私钥、证书、证书链拷贝到指定位置,成功后执行 --reloadcmd 命令。请确保有执行这些命令的权限。 当然你也不用担心证书更新的问题,在证书 60 天之后,会自动更新,更新后就会执行 --reloadcmd 的命令。 这里还有一些 hook 功能,请查看帮助 $ acme.sh -h,如,--renew-hook(每次证书成功更新后执行的命令)等。 更新证书 使用该工具的应该都是冲着其强大的自动更新部署功能来的。当然,如果你想手动更新: # RSA $ acme.sh --renew -d example.com --force # ECC acme.sh --renew -d example.com --force --ecc 全自动更新 为了实现全自动更新证书,我们需要添加一个 --renew-hook 的命令,它的作用就是能够在证书成功颁发后执行命令。 如: $ acme.sh --issue --dns dns_ali -d example.com -d www.example.com -k ec-256 \ --renew-hook "acme.sh --install-cert -d example.com --ecc \ --key-file /path/to/keyfile/in/nginx/key.pem \ --fullchain-file /path/to/fullchain/nginx/cert.pem \ --reloadcmd \"service nginx force-reload\"" 解读,这里使用 ali_dns 为 example.com 和 www.example.com 颁发 ecc 证书。在证书到期前 30 天,acme.sh 将再次执行这条命令进行证书的更新。更新后执行 --renew-hook 将证书安装到指定地方 /path/to/keyfile/in/nginx/,安装好之后会执行 --reloadcmd 命令,让 nginx 重新加载证书。这样就完成了证书的自动更新,不过首次证书颁发后,需要你进行证书的安装。 安全测试和评分 当我们证书部署好了之后,如何确定是否已经部署成功(博主部署的是双证书),Nginx 配置是否安全呢。 推荐使用以下三个在线服务来检测站点 HTTPS 配置情况: ssllabs 网站地址:https://www.ssllabs.com。国外网站,检测内容非常的详细,包括证书、协议以及客户端模拟和兼容行。查看测试结果 » httpsecurityreport 网站地址:https://httpsecurityreport.com。检测网站的一些 Header 的设置是否安全等。查看测试结果 » myssl 网站地址:https://myssl.com。这个是国内的检测站点,应该是新出来的,和 ssllabs 相似。不过关于证书的功能更多,速度也是快很多。查看测试结果 »
  6. Redis 集群迁移工具推荐:redis-migrate-tool Redis集群迁移工具,基于redis复制,快速,稳定。 特点 快速 多线程 基于redis复制 实时迁移 迁移过程中,源集群不影响对外提供服务 异构迁移 支持Twemproxy集群,redis cluster集群,rdb文件 和 aof文件 过滤功能 当目标集群是Twemproxy,数据会跳过Twemproxy直接导入到后端的redis 迁移状态显示 完善的数据抽样校验 迁移工具的来源可以是:单独的redis实例,twemproxy集群,redis cluster,rdb文件,aof文件。 迁移工具的目标可以是:单独的redis实例,twemproxy集群,redis cluster,rdb文件。 版本说明 https://github.com/vipshop/redis-migrate-tool #仅支持redis3及以下版本 https://github.com/tanruixing88/redis-migrate-tool #基于上述版本修改,支持redis4及以上版本 依赖 yum -y install automake libtool autoconf bzip2 安装 git clone https://github.com/tanruixing88/redis-migrate-tool.git redis-migrate-tool autoreconf -fvi ./configure make cp src/redis-migrate-tool /usr/local/bin/redis-migrate-tool 配置文件rmt.conf 配置文件示例:从redis cluster集群迁移数据到twemproxy集群 [source] type: redis cluster servers: - 127.0.0.1:6379 - 127.0.0.1:6380 - 127.0.0.1:6381 - 127.0.0.1:6382 [target] type: twemproxy hash: fnv1a_64 hash_tag: "{}" distribution: ketama servers: - 127.0.0.1:6380:1 server1 - 127.0.0.1:6381:1 server2 - 127.0.0.1:6382:1 server3 - 127.0.0.1:6383:1 server4 [common] listen: 0.0.0.0:8888 threads: 2 step: 1 mbuf_size: 1024 source_safe: true 配置文件示例:从redis cluster集群迁移数据到另外一个cluster集群 [source] type: redis cluster servers: - 127.0.0.1:8379 [target] type: redis cluster servers: - 127.0.0.1:7379 [common] listen: 0.0.0.0:8888 配置文件示例:从rdb文件恢复数据到redis cluster集群 [source] type: rdb file servers: - /data/redis/dump1.rdb - /data/redis/dump2.rdb - /data/redis/dump3.rdb [target] type: redis cluster servers: - 127.0.0.1:7379 [common] listen: 0.0.0.0:8888 运行 /usr/local/bin/redis-migrate-tool -c rmt.conf -o log -d 状态 通过redis-cli连接redis-migrate-tool监控的端口,运行info命令 redis-cli -h 127.0.0.1 -p 8888 127.0.0.1:8888> info # Server version:0.1.0 os:Linux 2.6.32-573.12.1.el6.x86_64 x86_64 multiplexing_api:epoll gcc_version:4.4.7 process_id:9199 tcp_port:8888 uptime_in_seconds:1662 uptime_in_days:0 config_file:/ect/rmt.conf # Clients connected_clients:1 max_clients_limit:100 total_connections_received:3 # Memory mem_allocator:jemalloc-4.0.4 # Group source_nodes_count:32 target_nodes_count:48 # Stats all_rdb_received:1 all_rdb_parsed:1 all_aof_loaded:0 rdb_received_count:32 rdb_parsed_count:32 aof_loaded_count:0 total_msgs_recv:7753587 total_msgs_sent:7753587 total_net_input_bytes:234636318 total_net_output_bytes:255384129 total_net_input_bytes_human:223.77M total_net_output_bytes_human:243.55M total_mbufs_inqueue:0 total_msgs_outqueue:0 127.0.0.1:8888> 数据校验 /usr/local/bin/redis-migrate-tool -c rmt.conf -o log -C redis_check Check job is running... Checked keys: 1000 Inconsistent value keys: 0 Inconsistent expire keys : 0 Other check error keys: 0 Checked OK keys: 1000 All keys checked OK! Check job finished, used 1.041s
  7. CentOS、Ubuntu、Debian依赖源配置 基础文档来一一篇,本文档以配置阿里云源为例,可将地址替换为其它源,如清华源地址:mirrors.tuna.tsinghua.edu.cn CentOS 7 yum源 rm -rf /etc/yum.repos.d/*.repo #删除repo文件,或者自己备份 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum makecache #更新缓存 CentOS 6 yum源 rm -rf /etc/yum.repos.d/*.repo #删除repo文件,或者自己备份 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo curl -o/etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum makecache #更新缓存 Ubuntu 18 apt源 mv /etc/apt/sources.list{,bak} #备份sources.list cat > /etc/apt/sources.list << EOF deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse EOF apt update Ubuntu 16 apt源 mv /etc/apt/sources.list{,bak} #备份sources.list cat > /etc/apt/sources.list << EOF deb http://mirrors.aliyun.com/ubuntu/ xenial main deb-src http://mirrors.aliyun.com/ubuntu/ xenial main deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main deb http://mirrors.aliyun.com/ubuntu/ xenial universe deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe deb http://mirrors.aliyun.com/ubuntu/ xenial-security main deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe EOF apt update Debian 9 apt源 mv /etc/apt/sources.list{,bak} #备份sources.list cat > /etc/apt/sources.list << EOF deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib deb-src http://mirrors.aliyun.com/debian/ stretch main non-free contrib deb http://mirrors.aliyun.com/debian-security stretch/updates main deb-src http://mirrors.aliyun.com/debian-security stretch/updates main deb http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib deb-src http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib deb http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib deb-src http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib EOF apt update Debian 8 apt源 mv /etc/apt/sources.list{,bak} #备份sources.list cat > /etc/apt/sources.list << EOF deb http://mirrors.aliyun.com/debian/ jessie main non-free contrib deb http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib deb-src http://mirrors.aliyun.com/debian/ jessie main non-free contrib deb-src http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib EOF apt update
  8. alpine(Go环境)Docker基础镜像制作 拉取官方alpine docker pull alpine:latest 安装glibc 参考:https://github.com/sgerrand/alpine-pkg-glibc/ 设置时区 RUN echo -e "https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/main\n\ https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/community" > /etc/apk/repositories # Install base packages RUN apk update && apk --no-cache add tzdata ca-certificates wget \ && cp -r -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 制作基础镜像 Dockerfile FROM alpine:latest RUN echo -e "https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/main\n\ https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/community" > /etc/apk/repositories # Install base packages RUN apk update && apk --no-cache add tzdata ca-certificates wget \ && cp -r -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://raw.githubusercontent.com/sgerrand/alpine-pkg-glibc/master/sgerrand.rsa.pub && wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.27-r0/glibc-2.27-r0.apk && apk add glibc-2.27-r0.apk && rm -f glibc-2.27-r0.apk /etc/apk/keys/sgerrand.rsa.pub docker build -t hub.linuxeye.com/library/alpine:latest . #生成镜像 docker push hub.linuxeye.com/library/alpine:latest #推送私有仓库
  9. vpngate.net 的镜像站点列表 (更新于 2019-11-25 19:48:15 UTC): http://91.207.174.26:10967/cn/ (Mirror location: United Kingdom) http://161.202.144.236:56364/cn/ (Mirror location: United States) http://45.87.213.134:39446/cn/ (Mirror location: United Kingdom) http://200.2.166.122:6137/cn/ (Mirror location: Suriname) http://37.120.154.37:23010/cn/ (Mirror location: United Kingdom) http://119.237.208.134:63898/cn/ (Mirror location: Hong Kong) VPN Gate 源 (主) 网站 URL https://www.vpngate.net/
  10. vpngate.net 的镜像站点列表 (更新于 2019-11-22 18:18:12 UTC): http://91.207.174.26:10967/cn/ (Mirror location: United Kingdom) http://37.120.154.37:23010/cn/ (Mirror location: United Kingdom) http://ec.90.caa1.ip4.static.sl-reverse.com:56364/cn/ (Mirror location: United States) http://200.2.166.122:6137/cn/ (Mirror location: Suriname) http://103.250.73.15:33674/cn/ (Mirror location: Singapore) http://45.87.213.134:39446/cn/ (Mirror location: United Kingdom) VPN Gate 源 (主) 网站 URL https://www.vpngate.net/
  11. vpngate.net 的镜像站点列表 (更新于 2019-11-09 20:24:33 UTC): http://37.120.154.37:23010/cn/ (Mirror location: United Kingdom) http://91.207.174.26:10967/cn/ (Mirror location: United Kingdom) http://ec.90.caa1.ip4.static.sl-reverse.com:56364/cn/ (Mirror location: United States) http://23.106.124.184:16401/cn/ (Mirror location: Singapore) http://200.2.166.122:6137/cn/ (Mirror location: Suriname) http://103.250.73.15:33674/cn/ (Mirror location: Singapore) VPN Gate 源 (主) 网站 URL https://www.vpngate.net/
  12. Linux下的tar压缩解压缩命令详解 tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。 -z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出 下面的参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。 # tar -cf all.tar *.jpg 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。 # tar -rf all.tar *.gif 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 # tar -uf all.tar logo.gif 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。 # tar -tf all.tar 这条命令是列出all.tar包中所有文件,-t是列出文件的意思 # tar -xf all.tar 这条命令是解出all.tar包中所有文件,-t是解开的意思 压缩 tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2 tar -cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux 解压 tar -xvf file.tar //解压 tar包 tar -xzvf file.tar.gz //解压tar.gz tar -xjvf file.tar.bz2 //解压 tar.bz2 tar -xZvf file.tar.Z //解压tar.Z unrar e file.rar //解压rar unzip file.zip //解压zip 总结 1、*.tar 用 tar -xvf 解压 2、*.gz 用 gzip -d或者gunzip 解压 3、*.tar.gz和*.tgz 用 tar -xzf 解压 4、*.bz2 用 bzip2 -d或者用bunzip2 解压 5、*.tar.bz2用tar -xjf 解压 6、*.Z 用 uncompress 解压 7、*.tar.Z 用tar -xZf 解压 8、*.rar 用 unrar e解压 9、*.zip 用 unzip 解压
  13. 最简单的只需要4步 1.创建一张表,表结构与原表结构一致: CREATE TABLE <table_name> ...; 2.删除新建的表空间: ALTER TABLE <table_name> DISCARD TABLESPACE; 3.将待恢复的<table_name>.ibd文件copy到目标数据库文件夹下,并修改文件权限: cp <table_name>.ibd /var/lib/mysql/<database_name> cd /var/lib/mysql/<database_name> chown mysql:mysql <table_name>.ibd 4.导入表空间: ALTER TABLE <table_name> IMPORT TABLESPACE; 也可能出现如下问题: 1.mysql 1808错误: Error Code: 1808. Schema mismatch (Table has ROW_TYPE_DYNAMIC row format, <table_name>.ibd file has ROW_TYPE_COMPACT row format.) 这是由于mysql 5.6的文件恢复到mysql 5.7版本导致的错误,需要在建表语句后面添加ROW_FORMAT=COMPACT,如下所示: create table test(id int, name varchar(10)) row_format=compact; 2.mysql 1812错误: Error Code:1812. Tablespace is missing for table <table_name> copy的ibd文件没有赋权,请按照第二步执行权限
  14. DDoS deflate - Linux下防御/减轻DDOS攻击 2010年04月19日 上午 | 作者:VPS侦探 前言 互联网如同现实社会一样充满钩心斗角,网站被DDOS也成为站长最头疼的事。在没有硬防的情况下,寻找软件代替是最直接的方法,比如用iptables,但是iptables不能在自动屏蔽,只能手动屏蔽。今天要说的就是一款能够自动屏蔽DDOS攻击者IP的软件:DDoS deflate。 DDoS deflate介绍 DDoS deflate是一款免费的用来防御和减轻DDoS攻击的脚本。它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限 制时,该程序会通过APF或IPTABLES禁止或阻挡这些IP. DDoS deflate官方网站:http://deflate.medialayer.com/ 如何确认是否受到DDOS攻击? 执行: netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 执行后,将会显示服务器上所有的每个IP多少个连接数。 以下是我自己用VPS测试的结果: li88-99:~# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 1 114.226.9.132 1 174.129.237.157 1 58.60.118.142 1 Address 1 servers) 2 118.26.131.78 3 123.125.1.202 3 220.248.43.119 4 117.36.231.253 4 119.162.46.124 6 219.140.232.128 8 220.181.61.31 VPS侦探 https://www.vpser.net/ 2311 67.215.242.196 每个IP几个、十几个或几十个连接数都还算比较正常,如果像上面成百上千肯定就不正常了。 1、安装DDoS deflate wget http://www.inetbase.com/scripts/ddos/install.sh //下载DDoS deflate chmod 0700 install.sh //添加权限 ./install.sh //执行 2、配置DDoS deflate 下面是DDoS deflate的默认配置位于/usr/local/ddos/ddos.conf ,内容如下: ##### Paths of the script and other files PROGDIR="/usr/local/ddos" PROG="/usr/local/ddos/ddos.sh" IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list" //IP地址白名单 CRON="/etc/cron.d/ddos.cron" //定时执行程序 APF="/etc/apf/apf" IPT="/sbin/iptables" ##### frequency in minutes for running the script ##### Caution: Every time this setting is changed, run the script with --cron ##### option so that the new frequency takes effect FREQ=1 //检查时间间隔,默认1分钟 ##### How many connections define a bad IP? Indicate that below. NO_OF_CONNECTIONS=150 //最大连接数,超过这个数IP就会被屏蔽,一般默认即可 ##### APF_BAN=1 (Make sure your APF version is atleast 0.96) ##### APF_BAN=0 (Uses iptables for banning ips instead of APF) APF_BAN=1 //使用APF还是iptables。推荐使用iptables,将APF_BAN的值改为0即可。 ##### KILL=0 (Bad IPs are'nt banned, good for interactive execution of script) ##### KILL=1 (Recommended setting) KILL=1 //是否屏蔽IP,默认即可 ##### An email is sent to the following address when an IP is banned. ##### Blank would suppress sending of mails EMAIL_TO="root" //当IP被屏蔽时给指定邮箱发送邮件,推荐使用,换成自己的邮箱即可 ##### Number of seconds the banned ip should remain in blacklist. BAN_PERIOD=600 //禁用IP时间,默认600秒,可根据情况调整 用户可根据给默认配置文件加上的注释提示内容,修改配置文件。 查看/usr/local/ddos/ddos.sh文件的第117行 netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST 修改为以下代码即可! netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sed -n ‘/[0-9]/p’ | sort | uniq -c | sort -nr > $BAD_IP_LIST
×
×
  • Create New...