Tag - Linux

Nginx Linux Shell    2019-04-24 09:24:07    14    0    0

Nginx 一键安装脚本(附带部分官方文档说明)

本脚本参考 Nginx官方文档 - installing-nginx-open-source

参考了一些别人的安装教程

脚本包含:
* prebuilt 包的 yum 安装
* source 包的编译安装
* 通过 wget, make, make install 安装编译依赖
* 通过 yum 升级编译依赖
* 包含自己常用的 Nginx module: core, http_ssl_module, stream, stream_ssl_module, mail, mail_ssl, file-aio, http_v2_module, threads
* 每一个步骤的相关注释
* 其他 module 功能的相关注释

编译 Nginx 需要的相关依赖: pcre, zlib, openssl

  1. #!/bin/bash
  2. # 参考 https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/
  3. # 注册成为系统服务部分参考 https://www.jianshu.com/p/79059b06a121
  4. # Nginx其他模块参考 https://segmentfault.com/a/1190000002797601
  5. echo -e "install prebuilt nginx from yum?[y/n]: \c"
  6. read _INSTALL_FROM_YUM
  7. if [[ "y" == "${_INSTALL_FROM_YUM}" ]]; then
  8. # Install the prerequisites:
  9. # 安装依赖
  10. yum -y install yum-utils
  11. # To set up the yum repository, create the file named /etc/yum.repos.d/
zookeeper Linux 分布式 分布式锁 注册中心    2019-04-18 17:36:02    8    0    0

关于 zookeeper 包下载的一个坑

zookeeper 作为目前来说工作常用, 面试常考的注册中心分布式锁来说已经变成一项必须要掌握的技能。所以在自己电脑上装一个 zookeeper, 平时没事的时候捣鼓一下是很有必要的。

但是!

zookeeper 的安装包下载是个大坑啊。

GitHub 上 zookeeper 项目 release 页的包是 不可以 直接下载下来用的。用 Maven 打包也行不通, zkServer 子项目配置文件读取一个 git 配置时错误。估计还要下载一个git才行。

错误的示范:

  1. 打开GitHub - zookeeper - release页
  2. 下载合适的版本
  3. 解压 tar
  4. 复制并修改zoo.cfg配置文件
  5. 运行 zookeeper ./bin/zkServer start
  6. 报错啦~>_<~
  1. ZooKeeper JMX enabled by default
  2. Using config: /data/woke/zookeeper-release-3.4.14/bin/../conf/zoo.cfg
  3. Starting zookeeper ... STARTED
  4. # 查看错误日志
  5. less zookeeper.out
  6. Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain

2019.04.25 更新

GitHub - zookeeper - release页 下载所需版本的 tar包后, 进入Maven 中央仓库下载对应版本的jar包到解压后的目录中, 再运行 bin/zkServer start 似乎也可以

2019.04.29 更新

从别的地方又看到一个办法, 从这里http://archive.apache.org/dist/zookeeper/下载tar

正确的打开方式:

  1. 打开Apache ZooKeeper 官网, 点击 Apache ZooKeeper™ Releases 下的 Download 按钮
  2. 找到合适的版本开始下载
  1. #
Linux DNS    2019-04-04 11:42:07    9    0    0

访问百度域名UnknownHost

百度这么叼, 也会有域名无法访问的时候?

最近就碰上这个事情了, 调用百度的 Http API, 结果报了个 UnknownHostException 异常。

  1. java.net.UnknownHostException: api.baidu.com: unknown error
  2. at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[na:1.8.0_101]
  3. at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928) ~[na:1.8.0_101]
  4. at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) ~[na:1.8.0_101]
  5. at java.net.InetAddress.getAllByName0(InetAddress.java:1276) ~[na:1.8.0_101]
  6. at java.net.InetAddress.getAllByName(InetAddress.java:1192) ~[na:1.8.0_101]
  7. at java.net.InetAddress.getAllByName(InetAddress.java:1126) ~[na:1.8.0_101]
  8. at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45) ~[httpclient-4.5.6.jar!/:4.5.6]
  9. at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java
Linux Mount    2019-02-20 22:48:43    9    0    0

Linux硬盘挂载从入门到跑路:

关于文件系统

centos6文件系统是ext4,因为设计较早,对于现今动辄上T的海量数据处理,性能较低。
centos7文件系统是xfs,适用于海量数据。这两种文件系统都是日志文件系统。
使用该文件系统的磁盘,空间包括两部分:日志空间和存储空间。
写入的数据是先暂存在日志空间,然后刷入存储空间,这样有利于恢复数据。
另外,xfs文件系统还支持将一块儿固态硬盘用作单独的日志空间盘,数据先写入固态硬盘,然后再刷入硬盘。
对于操作系统来说,数据写入了日志空间盘,就算完成了I/O,因此这种方式提高了系统性能。

使用命令

使用命令
fdisk -l 查看所有硬盘扇区大小,分区详情
lsblk -af 查看所有硬盘及分区文件系统,挂载点
mount /dev/vdb /disk 为分区制定挂载点
df -h 显示已挂载的文件系统的磁盘使用情况

删库流程

以/dev/vdb为例。
vdb是一块尚未挂载和格式化的空磁盘,没有文件系统。

fdisk -l 查看硬盘使用情况

  1. [root@iZwz9avipe1jdw1wbokzc5Z dev]# fdisk -l
  2. Disk /dev/vda: 107.4 GB, 107374182400 bytes, 209715200 sectors
  3. Units = sectors of 1 * 512 = 512 bytes
  4. Sector size (logical/physical): 512 bytes / 512 bytes
  5. I/O size (minimum/optimal): 512 bytes / 512 bytes
  6. Disk label type: dos
  7. Disk identifier: 0x000d2717
  8. Device Boot Start End Blocks Id System
  9. /dev/vda1 * 2048 209713151 104855552 83 Linux
  10. Disk /dev/vdb