在 Linux 上测试硬盘读写速度

记录一下在 Linux 下测试硬盘读写速度的命令和方法。

dd

使用 dd 测试写速度,千万有注意 of 后接的文件必须是一个不存在的文件,否则可能造成数据丢失!

sync; dd if=/dev/zero of=/tmp/tempfile bs=1M count=1024; sync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.55331 s, 421 MB/s

同样的道理,如果要测试一个外部存储,需要知道挂载点,然后用 dd 命令:

sync; dd if=/dev/zero of=/media/user/MyUSB/tempfile bs=1M count=1024; sync

使用 dd 测试读取速度,注意这里的 if 后需要接上一个命令生成的文件:

dd if=/tmp/tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.271083 s, 4.0 GB/s

清楚 cache,准确的测试真实的读速度:

sudo /sbin/sysctl -w vm.drop_caches=3
dd if=/tmp/tempfile of=/dev/null bs=1M count=1024

hdparm

使用 hdparm 也可以对硬盘进行测试。

apt install hdparm

先用 lsblk 或者 fdisk -l 来查看设备信息,一般磁盘都是 /dev/sda 这样。

然后用如下命令测试:

sudo hdparm -Tt /dev/sda

/dev/sda:
 Timing cached reads:   31236 MB in  1.99 seconds = 15733.75 MB/sec
 Timing buffered disk reads: 504 MB in  3.01 seconds = 167.51 MB/sec

reference


2019-10-11 linux , dd , hdd , ssd

Syncthing 又一款同步工具

昨天在整理同步工具的时候接触到了 Syncthing,简直秒杀了我现在使用的任何同步工具,所以不得不花一些篇幅来记录一下。

在看到 Syncthing 的介绍时,就非常好奇它的同步原理。也幸亏它的官方文档也有非常详细的 QA

几个比较重要的点:

  • 和 BitTorrent/Resilio Sync 的区别在于,Syncthing 开放源代码,使用开放协议,避免 Resilio Sync 闭源协议的安全问题
  • Syncthing 的同步原理,和 BT 类似,会将文件分片传输,当越多设备在线,那么共享速度越快
  • Syncthing 依赖于一个全局发现服务器,用来通过 Device ID 来发现设备 IP 和 端口,任何人都可以自己架设全局 Discovery 服务器,然后将自己的节点指向该服务器,这样就不必共享全局的服务器了,更甚至不需要依赖与因特网就能够实现局域网内文件同步
  • 关于安全性的说明 已经列举的非常详细了,所有内容通过 TLS 加密传输

下载安装

下载及安装过程不再赘述,官网已经非常详细了。

端口

Syncthing 有个端口需要注意一下

  • 8384 端口是网页 GUI 监听端口,默认监听 127.0.0.1
  • tcp://0.0.0.0:22000 服务监听地址
  • udp://0.0.0.0:21027 本地发现服务端口

配置文件

在 Unix 下在 $HOME/.config/syncthing

vi ~/.config/syncthing/config.xml

然后修改本地监听地址从 127.0.0.1 到 0.0.0.0.

开机启动

如果熟悉 supervisord 可以使用官方提供的文档配置,如果在 Linux 下可以尝试使用 Systemd

sudo systemctl enable syncthing@yourname.service
sudo systemctl start syncthing@yourname.service

记得把 yourname 替换成用户名。

Syncthing 服务启动后端口是 8384.

推荐理由

推荐的理由:

  • 无需额外的服务器资源,以前使用 NextCloud 的时候,有一个很不方便的便是需要保证服务器 24h 不停地在线,放在家里 NAS 如果遇到停电就很不方便
  • 同步速度非常快,使用中心化的同步服务,中心服务器的网速限制了同步的速度,如果客户端越多速度越慢,但是 Syncthing 做到了点对点传输,也就意味着客户端越多那么同步速度越快,因为这一个节点的文件内容可以并行分片的从不同的节点获取
  • 丰富的客户端,除了 iOS 没有官方支持,三大桌面端,Android,路由器,NAS 几乎都有支持,因为 Go 写的嘛
  • Syncthing 完美的替换了 Dropbox 等等服务

Syncthing 配置本地 Discovery 服务器

有一种情况是,加入只想要在本地局域网中传输数据,那么可以关闭全局 Discovery 服务器,然后在设置中手动指定某一态服务器的 IP 和 端口,而不是使用默认的 dynamic。这样所有的数据就会在本地传输。

reference


2019-10-11 syncthing , sync , tools , linux , cross-platform , application

同步工具整理总结

陆陆续续用过不少同步工具,资料备份,各个设备间同步文件,从商业化的工具到命令行工具,但总还是一直在寻找一款足于满足我所有需求的工具。这里就整理一下,顺便整理一下我自己的思路。不久前就一直在思考一个问题,数字文件的生命有多长,以前看到过一句话,几十年前父母写下的日记如今依然能从旧书柜中翻出,数十年前的胶卷照片依然还很清晰,但往往几年前的网络文章,或者数字照片可能如今随着网络服务的关闭,物理硬盘的损坏而无法恢复。有人尝试使用多地备份,有人尝试云服务备份,却都无法从根本上解决这个问题,当然现在的我依然没有办法完全的解决这个问题。

目前我从两个方面来规避这个问题,一方面物理备份一份,一方面网络存储一份。虽然可以从大部分情况下解决一些问题,不过并不能保证 100 % 数据安全。

中心化的同步工具

中心化的同步工具就像是那个时候的 SVN,使用体验完全依赖于中心服务器,网速,磁盘大小都决定了最后的使用体验。

Dropbox vs pCloud vs NextCloud

最早接触到同步工具应该就是 Dropbox 了,PC 上,手机上都是使用 Dropbox 来同步的,并且我的 Dropbox 利用率一直都还是很高。但是 Dropbox 因为网络问题原因,有些时候可能会比较慢。所以一直作为保留项目。

在 Dropbox 之后,也用过 pCloud 不过也并没有深度使用。

之后就是尝试在 VPS 上建了 NextCloud,然后买了 NAS 之后把内容备份到了 NAS 上,并且开始深度使用 NextCloud

不过以上这些工具都有一些问题,比如我都只用来同步一些相对比较小的文件,比如文件,图片,文档等等内容。因为受到同步服务器容量的限制,所以有些文件我会有意识的不同步。

去中心化的同步服务

去中心化的服务有很多,这些年陆陆续续也都用过很多。就我个人而言,如果使用命令行,我会用 rsync, 如果要有一个比较友好的界面,我会用 Syncthing。

Rsync

rsync 之前的文章 已经提到过,很多使用方法那篇文章中也有提及,这里就不赘述了。

unison

unison 没怎么用过,但是 unison 经常被用来和 rsync, syncthing 一起比较,想必也有他的过人之处。

Resilio Sync

曾经用过很长一段时间,说是去中心化的,但是国内把中心服务的节点屏蔽之后就很难连接上其他地址了,所以后来就放弃了。不过 NAS 上还一直留着,使用起来也非常不错。

如果想要分享只读大文件给很多人,不妨体验一下。

VerySync

之前也有写过一篇文章 威联通上使用 verySync,但是这个同步工具毕竟还是用的人少,并且还是国产闭源应用,可信度不高。作为 Resilio Sync 的国产代替品使用。

Syncthings

开源,跨平台,Go 语言编写,其他就不用多说了。这可能是这一次整理收获最大的一个工具。

添加 Linux 启动项,可以参考官方的文档,非常详细

这个工具足以代替 Dropbox 完成同步任务,支持增量备份,支持版本管理,各个平台都有完美的解决了同步的问题。

Other

insync 是一个可以将本地文件夹和 Google Drive 同步的工具,收费

GoodSync 又一款同步工具,支持很多平台,不过有些功能需要收费。

reference


2019-10-10 sync , tools , linux , rsync

lsb init scripts

I found someone submit a pull-request to redis, which modify the init.d script. The modification make me curious about the init script. So this is the research result.

LSB stand for Linux Standard Base.

LSB-compliant init scripts need to:

  • provide, at least, the following actions: start, stop, restart, force-reload, and status.
  • return proper exit status codes
  • document runtime dependencies
  • [optionally] Log messages using the Init.d functions: log_success_msg, log_failure_msg and log_warning_msg

    #!/bin/sh ### BEGIN INIT INFO # Provides: scriptname # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO

解释:

  • Provides 可识别名字
  • Required-Start 启动此程序前要先启动那个项目
  • Required-Stop 在哪一个项目前停止,可留白
  • Default-Start 在哪些 run level 下启动程序 ,比如 2 3 4 5
  • Default-Stop 在哪些 run level 下停止此程序,一般 0 1 6

几个虚设项目,以 $ 开头

  • $local_fs 本地文件系统被挂载,用到 /var 目录的启动项都需要依赖此
  • $network 网络被启用
  • $named 名称功能被启用
  • $remote_fs 所有文件系统被挂载,包含 /usr
  • $syslog 系统记录功能启用
  • $time 系统时间被设定
  • $all 所有项目

一般的 daemon 应该依赖 $remote_fs$syslog ,核心模块驱动程序等,需要依赖 $local_fs

Edit

/etc/init.d 目录下有一个 skeleton 文件,可以以此作为文件的基础来进行编辑。

Actions

一个脚本需要提供 start, stop, restart, force-reload, status 这几个动作。

reference


2019-10-09 lsb , init , debian , ubuntu , linux , startup , script

支持对象存储的开源存储系统

最近整理文档,想起来自己的腾讯云,和 Google 云,好几十 G 的对象存储都空着,虽然腾讯云填了一部分同步的书籍,但是还是没有好好利用起来,然后就突然想起来之前看到过有人自己写了一份网盘同步程序,将对象存储作为同步工具来使用,这么一想确实可以尝试一下,毕竟现在 Dropbox 容量渐渐不够用了,如果能作为一份扩充也倒是不错的选择。所以这里就整理一下目前可用的一些方案,然后再做一下决择。

Cloudreve

这是一款 PHP 所写的云盘系统,支持多家对象存储,设计采用 Material Design ,看起来也不错。

lsky-pro

又一款用 PHP 所写图片管理系统。

OneList

基于 Python 的 OneDrive 网盘目录列表

oneindex

又一款用来展示 One Drive 列表的项目,PHP

PyOne

基于 Python 的 onedrive 文件本地化浏览系统,使用 MongoDB 缓存文件

minio

用 Go 实现了一套对象存储的服务端,兼容 AWS S3。

Piwigo

一款在线相册

在调查的过程中,还发现了日本的一个云存储服务,TeraCLOUD,提供 10G 空间,还支持 WebDAV ,果断注册一个。如果你也想注册可以注册完之后,用我的 CODENDMSQ

支持 WebDAV ,那么我就可以直接在我的 nemo 文件管理器 中 connect 到这个服务,在 File -> Connect to Server 中选择 Secure WebDAV(HTTPS),然后输入 TeraCLOUD 提供的 WebDAV 地址,以及用户名和密码来登录该服务,既不用多安装一个客户端,也可以非常方便的映射到本地文件管理器中。简单的测试了一下,发现上传速度,在我这里竟然达到了惊人的 800 kB/s

tera cloud speed

其他桌面版,或者移动客户端,只要支持 WebDAV 协议,那么都可以非常方便的使用该服务。官方也提供了一系列的选择方案


2019-09-27 object-storage , cloud-drive , open-source

Use shadowsocks libev

This post is under the environment of Ubuntu 18.04, this instruction will guide how to install shadowsocks libev both server side and client settings manually. And show the step to configure the simple-obfs.

The source code is in following two repositories:

You can manually build and install yourself. But under Ubuntu 18.04, you can just install like this:

sudo apt install shadowsocks-libev simple-obfs

and the configuration is under /etc/shadowsocks-libev/. You can manullay modify it and make it work.

If your system is before Ubuntu 18.04, you have to build it from source.

Install shadowsocks-libev via Ubuntu PPA

sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y
sudo apt-get update
sudo apt install shadowsocks-libev

Install simple-obfs

sudo apt-get install --no-install-recommends build-essential autoconf libtool libssl-dev libpcre3-dev libev-dev asciidoc xmlto automake
git clone https://github.com/shadowsocks/simple-obfs.git
cd simple-obfs
git submodule update --init --recursive
./autogen.sh
./configure && make
sudo make install

Make ~obfs-server~ able to listen on port 443

setcap cap_net_bind_service+ep /usr/local/bin/obfs-server

Server configuration

Add below to ~/etc/shadowsocks-libev/config.json~

{
    "server":"0.0.0.0",
    "server_port":443,
    "local_port":1080,
    "password":"password",
    "timeout":300,
    "method":"chacha20-ietf-poly1305",
    "plugin":"obfs-server",
    "plugin_opts": "obfs=tls;obfs-host=www.douban.com",
}

Start ~shadowsocks-libev~ server

systemctl enable shadowsocks-libev.service
systemctl start shadowsocks-libev.service
systemctl status shadowsocks-libev.service

Optimizations

Install & enable BBR TCP congestion control

 apt install --install-recommends linux-generic-hwe-16.04
 apt autoremove
 modprobe tcp_bbr
 echo "tcp_bbr" >> /etc/modules-load.d/modules.conf
 echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
 echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
 sysctl -p

MISC

Add below to ~/etc/sysctl.d/local.conf~

 fs.file-max = 51200

 net.core.rmem_max = 67108864
 net.core.wmem_max = 67108864
 net.core.netdev_max_backlog = 250000
 net.core.somaxconn = 4096

 net.ipv4.tcp_syncookies = 1
 net.ipv4.tcp_tw_reuse = 1
 net.ipv4.tcp_fin_timeout = 30
 net.ipv4.tcp_keepalive_time = 1200
 net.ipv4.ip_local_port_range = 10000 65000
 net.ipv4.tcp_max_syn_backlog = 8192
 net.ipv4.tcp_max_tw_buckets = 5000
 net.ipv4.tcp_fastopen = 3
 net.ipv4.tcp_mem = 25600 51200 102400
 net.ipv4.tcp_rmem = 4096 87380 67108864
 net.ipv4.tcp_wmem = 4096 65536 67108864
 net.ipv4.tcp_mtu_probing = 1

Reboot

reboot

Client configuration

Add below to /usr/local/etc/shadowsocks-libev.json

Note that the ~plugin~ has to be absolute path in order to be able to use ~brew services start shadowsocks-libev~.

{
    "server":"SERVER",
    "server_port":443,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"PASSWORD",
    "timeout":300,
    "method":"chacha20-ietf-poly1305",
    "workers":8,
    "plugin":"/usr/local/bin/obfs-local",
    "plugin_opts": "obfs=tls;obfs-host=www.bing.com",
    "fast_open":true,
    "reuse_port":true
}

reference


2019-09-26 socks , shadowsocks , shadowsocks-libev , proxy , ubuntu

排查导致 CPU load 过高的 Java 线程

When you encouter the high cpu load caused by java application, you may follow these steps to troubleshooting.

identify the PID

identify the PID, use top or htop then press P, sorted by CPU

identify the thread

identify the thread using top -n 1 -H -p PID, this command will give an output listing all the threads in the selected process

like this:

KiB Mem : 16342620 total,   270500 free, 12773428 used,  3298692 buff/cache
KiB Swap:  7812092 total,  2654116 free,  5157976 used.  1999284 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
28958 einverne  20   0 8824828 3.021g  23784 S  30.0 19.4   0:00.00 java
28959 einverne  20   0 8824828 3.021g  23784 S  0.0 19.4   0:00.56 java
28960 einverne  20   0 8824828 3.021g  23784 S  0.0 19.4   0:10.35 GC Thread#0
28961 einverne  20   0 8824828 3.021g  23784 S  0.0 19.4   0:00.06 G1 Main Marker
28962 einverne  20   0 8824828 3.021g  23784 S  0.0 19.4   0:07.24 G1 Conc#0
28963 einverne  20   0 8824828 3.021g  23784 S  0.0 19.4   0:00.42 G1 Refine#0

Here for example, PID 28958 use 30% of CPU.

jstack

Then use jstack to show the stack trace for the PID

jstack PID > jstack.out

Convert thread ID to Hexadecimal value

Use the above result as example, thread id 28958 is the problem thread. Then convert it to hex value. 28958 -> 711e

Here I provide an easy way to convert decimal to hexadecimal under bash:

printf '%x\n' 28958
# or
echo "obase=16; 28958" | bc

Search the stack trace output for the hex value using the tools you’re familiar with, grep, less etc.

less jstack.out

Then you will found the thread details.

reference


2019-09-26 java , linux , top , cpu , load

Vim 插件之:vim-abolish

vim-abolish 又一款 Tim Pope 大神所制作的插件,这款插件扩展了一条名为 :Subvert 的自定义命令,作用类似于 Vim 内置命令 :substitute 的扩展。

比如说想要将整个文档中的 man 和 dog 两个单词交换,如果用 Vim 原生的替换比较麻烦,而使用该插件则只需要 :%S/{man,dog}/{dog,man}/g

在 GitHub 页面上也有大量的使用方式介绍,这里再提一个官方页面上的用例,比如想要把所有的 facility 替换成 building,那么 facility 有复数, building 也有复数,怎么办

:%S/facilit{y, ies}/building{,s}/g

这个比较好理解,但是 Abolish 还有一个非常贴心的转换,在编程中有驼峰命名,小写字母加下划线命令,假如要将一些变量从小写下划线变成驼峰命名,这个插件提供了一个方法 crc

compute_vm_current_status

将光标移动到该变量名,然后按下 crc 就可以快速将变量命名修改成 camelCase (crc).

同样的

  • crs 变成 snake_case , 小写下划线
  • crm MixedCase
  • crc camelCase
  • crs snake_case
  • cru UPPER_CASE
  • cr- dash-case
  • cr. dot.case
  • cr space case
  • crt Title Case

更加详细内容 :help abolish


2019-09-22 vim , vim-plugin , tim-pope

Vim global 命令

global 命令结合了 Ex 命令和 Vim 模式匹配的能力,借助该命令,可以在指定模式的所有匹配行上运行 Ex 命令。global 命令是除了点操作和宏命令之外,最强大的 Vim 工具之一。

Basic

global 命令基本形式,可以读作在 range 上,如果行匹配 pattern,那么执行全局命令 cmd

:[range] global[!]/{pattern}/[cmd]

说明:

  • 缺省情况下,global 命令作用范围是整个文件 (%).
  • 除了 global 还有 :vglobal 表示反转,在没有匹配 pattern 的行上执行 cmd
  • pattern 与查找历史相互关联,如果留空,Vim 会自动使用当前的查找模式
  • [cmd] 可以是 :global 之外的任何 Ex 命令,如果不指定 [cmd], 那么缺省是 :print

Use case

删除所有包含模式的行

比如删除所有空行

:g/^$/d

拷贝包含 TODO 的行到文件末尾

代码中经常会写一些 TODO , 如果想要统一处理这些 TODO,可以使用

:g/TODO/t$

将 TODO 行拷贝到文件末尾,来处理。


2019-09-22 vim , vim-global , ex-command , vim-mode , editor , linux

Oracle 提供免费的云服务

前两天在 Twitter 上看到有人分享新闻说,Oracle 发布了新的云服务政策,提供 Always Free 的主机和对象存储还是数据库,所以就看了一下,搜了一下新闻,还真的有 Oracle Offers Always Free Autonomous Database and Cloud Infrastructure,所以就注册一下。但是当天晚上创建 VM 的时候提示我 “out of host capacity”,Google 了一下才发现,原来这条消息早就在羊毛党炸锅了,不亚于 Google Cloud Platform 当年的新闻。不过我个人作为学习使用,并没有违背 Oracle 的政策。所以我就等着 Oracle 解决 “out of host capacity” 的问题。于是等到周末,突然想起这件事情,就登录账号是了一下,确实可以创建了。

这里再整理一下 Oracle 提供的服务内容,根据它官方的博文,Oracle 提供的服务没有像其他云服务提供商一样提供 12 个月的免费体验,而是对于基础服务,比如 Compute VMs, Database, Block and Object Storage, and Load Balancer, 等等只要在用,不超过限额,那么就在账号有效期内免费使用。

这里引用 Oracle 官方的文章:

The new program enables developers to build applications using any language and framework on top of Oracle Cloud Infrastructure and Autonomous Database. They can get started quickly without waiting for IT to provision and learn new technologies such as artificial intelligence and machine learning. Enterprises can use Free Tier to prototype, prove out new technologies, and do testing before moving production workloads to the cloud. They can sample robust enterprise infrastructure capabilities like load balancing and storage cloning. Additionally, students can learn how to use the latest technologies and become better prepared for their careers.

Oracle 提供的免费服务包括两个部分:

  • Always Free services, which provide access to Oracle Cloud services for an unlimited time
  • Free Trial, which provides $300 in credits for 30 days to try additional services and larger shapes 而 Always Free 项目涵盖了开发,测试应用必要的各种服务,包括 Oracle Autonomous Database, Compute VMs, Block Volumes, Object and Archive Storage, and Load Balancer 等等。具体来说:

  • 2 Autonomous Databases (Autonomous Data Warehouse or Autonomous Transaction Processing), each with 1 OCPU and 20 GB storage
  • 2 Compute VMs, each with 1/8 OCPU and 1 GB memory
  • 2 Block Volumes, 100 GB total, with up to 5 free backups
  • 10 GB Object Storage, 10 GB Archive Storage, and 50,000/month API requests
  • 1 Load Balancer, 10 Mbps bandwidth
  • 10 TB/month Outbound Data Transfer
  • 500 million ingestion Datapoints and 1 billion Datapoints for Monitoring Service
  • 1 million Notification delivery options per month and 1000 emails per month

这里可以看到提供的主机是 1/8 OCPU,什么是 OCPU ? 官方的解释是:OCPU 定义为等同于启用了超线程的 Intel Xeon 处理器一个物理核心的 CPU 容量或者等同于 Orcale SPARC 的一个物理核心。1 对于 Intel Xeon 处理器,每个 OCPU 对应于两个硬件执行线程 ( vCPU )。2

AWS, Microsoft 和 Google 提供的云服务都是以 vCPU 作为计算单元,每一个 vCPU 都表示 Intel Xeon 核心的的一个超线程。一个标准的 Intel 核心如果开启了超线程,有两个线程。

Compute

计算实例配置:

Shape: VM.Standard.E2.1.Micro
Processor: 1/8th of an OCPU with the ability to use additional CPU resources
Memory: 1 GB
Networking: Includes one VNIC with one public IP address and up to 480 Mbps network bandwidth
Operating System: Your choice of one of the following Always Free-eligible operating systems:
Oracle Linux
Canonical Ubuntu Linux
CentOS Linux

Block Volume

存储

100 GB total of combined boot volume and block volume Always Free Block Volume storage.

Five total volume backups (boot volume and block volume combined).

Object Storage

免费账户:

20 GiB of combined Object Storage and Archive Storage
50,000 Object Storage API requests per month

付费账户:

10 GiB of Object Storage
10 GiB of Archive Storage
50,000 Object Storage API requests per month

Server

网站登录地址:

韩国区域后台管理地址:

Server Config

Check this post

ubuntu@instance: $ sudo su - root
root@instance: # passwd # set password of root user
adduser yourname
apt install vim
update-alternatives --config editor   # choose vim
visudo # add  yourname ALL=(ALL:ALL) NOPASSWD:ALL
vi /etc/ssh/sshd_config # AllowUsers yourname
/etc/init.d/ssh reload
# copy ssh pub to ~/.ssh/authorized_keys

then

ssh -p 22 yourname@ip

另外我个人建议可以登陆后修改一下默认的 SSH 端口。

防火墙设置

实例管理页面,Virtual Cloud Network Details,Security Lists, 在防火墙安全策略里面将需要的端口配上。

另外需要特别注意需要登录机器配置实例上的防火墙。

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F

卸载停止不需要的服务

sudo systemctl stop rpcbind.socket
sudo systemctl disable rpcbind.socket

卸载 Oracle 后台监控

sudo systemctl stop snap.oracle-cloud-agent.oracle-cloud-agent.service
sudo systemctl disable snap.oracle-cloud-agent.oracle-cloud-agent.service

QA

新开的实例,我一般都会直接修改其 ssh 登录端口,而这台机器白天开了之后设置了 sshd 端口,并且 reload 了 sshd 设置,晚上回到家后发现

connect to host port xxx:xxx No route to host

这个时候我想着要不就是端口没有生效,要不就是防火墙问题,所以通过 Oracle 后台远程登录的方式进入到机器上,先关了防火墙,然后去控制后台配置了端口,然后再连接即可。

reference


2019-09-22 linux , oracle , gcp , cloud , vps , server

电子书

最近文章

  • 使用 assh 来管理 SSH config 前两天一直在思考如何管理我的 SSH config 配置,最后的解决办法就是通过 git 版本管理起来。但这两天由冒出一个新的问题,那就是经常在国内直连 aws 或者 oracle 的机器时 ssh 连不上,但是通过国内的 VPS 中转就非常快,那这就意味着,我每一次连接国外的机器时必须先登录腾讯云的机器,然后在从腾讯云的机器上连过去,有些麻烦,但那天在 Twitter 上看到有人分享了一个 SSH 管理的命令行工具 assh,大致的看了一下使用简介,通过配置就可以完美的解决这个问题。
  • 备份和恢复从 Chrome Webstore 中下架的 Google Chrome Extension 这两天重装系统同步 Chrome 的数据才发现,我一直使用的 Dream Afar New Tab 这个我用了很久的扩展从 Chrome Webstore 消失了,不清楚是 Google 主动下架,还是作者很久没有更新被 Webstore 下了还是为什么。但这个扩展经过了很多的 Chrome 版本依然运行良好至今为止都能每天给我提供世界不同地方的美景。
  • Docker 网络与容器互联 简单整理一下 Docker 中 network 子命令,以及 docker 中相关 network 方面的内容。
  • MacBook Pro 初始设置记录 这里就简单的记录一下我从 Linux Mint 迁移到 MacOS 根据我的个人需求来初始化新的 MacBook Pro 的一些设置,和一些基本的感想。下面的内容会按照我自身的需求出发,我会列举我想要的功能然后在此基础上我需要借助哪些工具来实现。在切换到 MacBook Pro 之前,我使用了大约 6 年多的 Linux Mint,我已经有一套我自己的 Workflow,在切换到 Mac OS 之前我就在想哪一些的事情我是必须有 Mac 的软硬件才能做到,并且很提高某一方面的效率的,我列了一些
  • 多设备间同步 ssh 配置及密钥 ssh 客户端会在用户目录 ~/.ssh/ 目录下存放配置信息 (~/.ssh/config) 和公钥和私钥,如果有多个设备不同设备间的同步和管理就会成为一个比较头疼的问题。我在 Reddit 上抛出这个问题 后,我本来想的是通过 git 版本控制来进行管理,但有人说因为公钥和私钥都是二进制的文件,其实没有必要使用 git,任何一个同步工具就能够解决。