分类目录归档:linux

centos 6 如何安装 socat

由于socat 并没有在 centos 6 的默认源中. 无法直接安装.

有两个方法可以安装.

第一: 可以自己下载并安装这两个软件包:

  1. https://centos.pkgs.org/6/centos-x86_64/compat-readline5-5.2-17.1.el6.x86_64.rpm.html
  2. https://centos.pkgs.org/6/epel-x86_64/socat-1.7.2.3-1.el6.x86_64.rpm.html

第二: 可以添加源,然后yum 安装.

curl http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo > /etc/yum.repos.d/convirt.repo

yum update
yum install socat

byNeil
byNeil.com

原文来自 Blog by Neil, post centos 6 如何安装 socat 转载请注明出处。本站保留一切权力

opensuse:42.1 zypper 安装软件错误

zypper update 时出现以下错误:

bash-4.2# zypper update -y
Retrieving repository 'NON-OSS' metadata ---------------------------------------------------------------------------------------------------[\]
File '/media.1/media' not found on medium 'http://download.opensuse.org/distribution/leap/42.1/repo/non-oss/'

Abort, retry, ignore? [a/r/i/? shows all options] (a): a
Retrieving repository 'NON-OSS' metadata ...............................................................................................[error]
Repository 'NON-OSS' is invalid.
[non-oss|http://download.opensuse.org/distribution/leap/42.1/repo/non-oss/] Valid metadata not found at specified URL
Please check if the URIs defined for this repository are pointing to a valid repository.
Warning: Skipping repository 'NON-OSS' because of the above error.
Retrieving repository 'OSS' metadata -------------------------------------------------------------------------------------------------------[|]
File '/media.1/media' not found on medium 'http://download.opensuse.org/distribution/leap/42.1/repo/oss/'

Abort, retry, ignore? [a/r/i/? shows all options] (a): a
Retrieving repository 'OSS' metadata ...................................................................................................[error]
Repository 'OSS' is invalid.
[oss|http://download.opensuse.org/distribution/leap/42.1/repo/oss/] Valid metadata not found at specified URL
Please check if the URIs defined for this repository are pointing to a valid repository.
Warning: Skipping repository 'OSS' because of the above error.

是因为 ossnon-oss 源无效了. 只需要移除这两个源即可.

zypper rr OSS NON-OSS

byNeil
byNeil.com

原文来自 Blog by Neil, post opensuse:42.1 zypper 安装软件错误 转载请注明出处。本站保留一切权力

ubuntu 的网卡名字 变成了 ens33

很久以前就注意到 ubuntu 的 网卡名字不再是 eth0 了.
这里有一个争论 http://opensuse-factory.opensuse.narkive.com/rGGZFhpR/13-1-why-network-eth0-is-named-instead-ens33

这里有正式的解释: https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

简单的来讲, eth0 的名字是内核取的, 而这个名字是受驱动程序的先后顺序决定的. 多个网卡的话, 每次重启 ethx 后面的 数字可能会随机变化.
这也是改名的根本原因.

改名是为了让名字固定下来. 这个名字是 systemd 取的, 来自主板上端口顺序. 所以相对固定.

当然还有其他好处若干. 请阅读上面的链接.
byNeil
byNeil.com

原文来自 Blog by Neil, post ubuntu 的网卡名字 变成了 ens33 转载请注明出处。本站保留一切权力

如何挂载 lvm 分区

查看 lvm 信息

```sh

lvdisplay

--- Logical volume ---
LV Path /dev/system-dblti/root
LV Name root
VG Name system-dblti
LV UUID NhTMSk-tTvl-Bj4V-7kjv-xP4N-8T9P-wtkSGb
LV Write Access read/write
LV Creation host, time dedie, 2015-12-21 14:28:10 +0100
LV Status available
# open 1
LV Size 1,82 TiB
Current LE 476631
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0

```

然后挂载:

```sh
mount /dev/system-dblti/root /mnt
```

byNeil
byNeil.com

原文来自 Blog by Neil, post 如何挂载 lvm 分区 转载请注明出处。本站保留一切权力

mosh 使用(二)

在 ubuntu 上运行 mosh 的客户端, 出现以下错误:

The locale requested by LC_CTYPE=UTF-8 isn't available here.
Running `locale-gen UTF-8' may be necessary.

The locale requested by LC_CTYPE=UTF-8 isn't available here.
Running `locale-gen UTF-8' may be necessary.

mosh-server needs a UTF-8 native locale to run.

Unfortunately, the local environment (LC_CTYPE=UTF-8) specifies
the character set "US-ASCII",

The client-supplied environment (LC_CTYPE=UTF-8) specifies
the character set "US-ASCII".

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=
LANGUAGE=
LC_CTYPE=UTF-8
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
Connection to 128.199.. closed.
/usr/local/bin/mosh: Did not find mosh server startup message.

在~/.bashrc添加一行:

export LC_ALL="en_US.UTF-8"

退出 bash, 再次进入, 出现以下警告:

-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory

我们可以通过运行 locale -a 查看系统当前支持的locale定义

我们通过运行

localedef -v -c -i en_US -f UTF-8 en_US.UTF-8

生成相应的locale配置文件。之后系统就不会报错了。

byNeil
byNeil.com

原文来自 Blog by Neil, post mosh 使用(二) 转载请注明出处。本站保留一切权力

gentoo linux 安装软件

gentoo linux 使用 emerge 安装 软件。

更新软件包信息:

emerge  --sync

搜索软件包:

emerge  --search   netcat

安装软件:

emerge   curl

如果安装软件遇到如下错误:

# emerge    net-analyzer/openbsd-netcat

 * IMPORTANT: 11 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.

Calculating dependencies... done!
[ebuild   R   ~] net-analyzer/openbsd-netcat-1.105-r1 

The following keyword changes are necessary to proceed:
 (see "package.accept_keywords" in the portage(5) man page for more details)
# required by net-analyzer/openbsd-netcat (argument)
=net-analyzer/openbsd-netcat-1.105-r1 ~amd64

Use --autounmask-write to write changes to config files (honoring
CONFIG_PROTECT). Carefully examine the list of proposed changes,
paying special attention to mask or keyword changes that may expose
experimental or unstable packages.

尝试这样:

 ACCEPT_KEYWORDS="~amd64"   emerge  net-analyzer/openbsd-netcat

byNeil
byNeil.com

原文来自 Blog by Neil, post gentoo linux 安装软件 转载请注明出处。本站保留一切权力

mosh 的安装和使用

ssh 的服务器如果延迟比较大的话, 还是比较痛苦的.
今天发现了这个东西: mosh

http://scm.zoomquiet.io/data/20131104091538/index.html
http://www.zfanw.com/blog/mosh.html

它是为了解决两个问题:

  1. 线路不稳定, 丢包率高.
  2. 线路延迟大, 操作延迟大.

简单的讲, 它使用普通的ssh协议认证, 然后传输使用udp协议.

使用udp协议的好处是不用总是保持连接, 用来解决第一个问题, 就是高丢包率. 就算丢包,也不会断,因为本来就是 udp , 没有连接.

为了处理延迟大的问题, 它在客户端做了优化, 包括输入回显预测机制,让你感觉到输入流畅了. 以及打包及拆包发送等等. 实测效果比较流畅.大有改观.

目前的缺陷, 就是只支持交互式shell环境, 不支持X转发,和端口转发等.

简单说一下安装方法.

  1. 安装服务端.

服务端已经支持了几乎所有的平台. 安装也很简单:

https://mosh.mit.edu/#getting

apt-get install mosh

服务端默认使用 udp 60001 端口传输, 所以可能需要你打开防火墙端口:

iptables -I INPUT -p udp --dport 60001 -j ACCEPT
  1. 安装客户端.
    如果是linux, 也使用同样的命令安装:
apt-get install mosh

我是windows, 官方客户端只支持cygwin. 所以要先安装cygwin.

mosh已经进入cygwin的仓库, 但是默认没有安装.

在cygwin安装时, 需要搜索添加mosh.

如果已经安装过cygwin了, 再次运行安装程序, 然后在安装时搜索找到mosh 安装即可.

mosh 只能在 纯的 utf-8 环境下工作. 所以在运行 mosh之前, 要改cygwin的语言.

找到 cygwin的 C:\cygwin64\home\neil.bashrc 文件.

在文件末尾加入如下两行.

export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
  1. 使用方法.

启动cygwin的shell.

直接输入命令:

mosh  root@myserver.com

如果ssh的端口改了.

mosh -ssh="ssh -p 1234"  root@myserver.com

更新:

今天发现有官方的 chrome 插件 客户端. 可以在浏览器里直接连接vps了.
https://chrome.google.com/webstore/detail/mosh/ooiklbnjmhbcgemelgfhaeaocllobloj

byNeil
byNeil.com

原文来自 Blog by Neil, post mosh 的安装和使用 转载请注明出处。本站保留一切权力

linux 清理磁盘,查找大文件

查看磁盘的占用:

df  -h
neil@dedia:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       139G   37G   96G  28% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            983M  4.0K  983M   1% /dev
tmpfs           199M  500K  198M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            992M     0  992M   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/sda1       180M   34M  134M  20% /boot

如果需要清理磁盘的话, 用 find 命令找出大文件,然后酌情删除:

find / -size +100M -exec ls -lh {} \;

这就是要查找磁盘上大于100m 的文件.

参考:

http://lovesoo.org/linux-system-to-find-clean-the-disk-file.html

byNeil
byNeil.com

原文来自 Blog by Neil, post linux 清理磁盘,查找大文件 转载请注明出处。本站保留一切权力

Ubuntu 启用磁盘配额 quota

quota 可以为用户或用户组设置磁盘配额. 限制用户或用户组能使用的磁盘大小.

1. 安装 quota :

sudo apt-get install quota

2. 编辑 /etc/fstab 文件,启用 quota

vi  /etc/fstab

添加 usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 到需要启用 quota 的分区. 比如 /:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda2 during installation
UUID=7cf8dc2b-2541-4684-8931-844b6bd01e9c /               ext4    errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0       1
# /boot was on /dev/sda1 during installation
UUID=4541b27d-84d6-4f70-9077-7cb9308634b6 /boot           ext4    defaults        0       2
# swap was on /dev/sda3 during installation
UUID=ccae84a6-7423-4e60-9448-0cf05a053fbc none            swap    sw              0       0

3. 重新挂载分区:

touch /aquota.user /aquota.group
chmod 600 /aquota.*
mount -o remount /

4. 启用 quota :

quotacheck -avugmc
quotaon -avug

参考:

http://www.howtoforge.com/how-to-set-up-journaled-quota-on-debian-lenny
http://manpages.ubuntu.com/manpages/hardy/zh_CN/man1/quota.1.html

byNeil
byNeil.com

原文来自 Blog by Neil, post Ubuntu 启用磁盘配额 quota 转载请注明出处。本站保留一切权力

sed 命令的简单用法

我们在编写shell的时候, 可能需要修改一些配置文件, 比如需要修改mysql的配置文件, 在里面添加一些设置,修改一些或者删除一些.

怎么在shell中来编辑 文本文件呢.

在交互式环境下, 使用vi就可以了. 手动去修改. 但是在无人值守的shell中呢?

这里,就要用到 sed 命令了.

sed 的意思是: stream editor, 就是流式编辑器.

跟很多命令行工具(比如awk)一样, 他的功能及其强大, 当然用法和参数也及其复杂. 这里以极简的方式记录几种用法, 常用的编辑功能基本都能满足了.

sed 处理的基本方式

它的基本命令格式大概是这个样子的:

sed -options /patterns  file

它的意思是要处理 文件 file, 并且把处理结果直接回显到屏幕上. 所以通常需要配合重定向来保存处理结果.

它通常的工作样式是这样的:

sed -options  /patterns  file > saved.txt

当然, 可以不用重定向, 而直接指定保存文件名. 这里用到 -i 参数.
比如:
sed -i saved.txt -options /patterns file
这样在-i后面跟上一个文件名,就可以了.
如果 -i 后面没有跟文件名, 那么, 编辑结果将会保存到原文件.
sed -i -options /patters file
这样, 就是直接修改原文件了.
因为我通常都是想直接修改原文件的, 所以下面我都加上-i 参数了.

sed 的基本编辑操作.

替换 是我们最常用的操作.
他的命令样式为:

sed -i  "s/aaaa/bbbb"  file

这个命令就是把file中的所有字符串aaaa替换成bbbb, 并保存到原文件中(因为有-i 参数).

前插入 就是在某个特征字符串的前面插入内容.

命令为:

sed -i  "/aaa/i bbbb"  file  

这个命令是在aaa的前面插入一行bbbb, 注意中间的那个字母 i, 表示insert.

后插入 就是在某个特征字符串的后面插入内容.

命令为:

sed -i  "/aaa/a bbbb" file 

这个命令是在aaa的后面插入一样bbbb, 注意中间那个字母a, 表示append.


欢迎访问我的个人博客: http://byNeil.com

byNeil
byNeil.com

原文来自 Blog by Neil, post sed 命令的简单用法 转载请注明出处。本站保留一切权力