分类目录归档:技术文章

CentOS6中添加/更改Swap

1、检查 Swap 空间
在设置 Swap 文件之前,有必要先检查一下系统里有没有既存的 Swap 文件。
运行以下命令:

swapon -s

如果返回的信息概要是空的,则表示 Swap 文件不存在。

2、检查文件系统
在设置 Swap 文件之前,同样有必要检查一下文件系统,看看是否有足够的硬盘空间来设置 Swap 。运行以下命令:

df -hal

检查返回的信息,还剩余足够的硬盘空间即可。

3、创建并允许 Swap 文件
下面使用 dd 命令来创建 Swap 文件。

dd if=/dev/zero of=/swapfile bs=1024 count=512k

参数解读:
if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
bs=bytes:同时设置读入/输出的块大小为bytes个字节
count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。

4、格式化并激活 Swap 文件
上面已经创建好 Swap 文件,还需要格式化后才能使用。运行命令:

mkswap /swapfile

激活 Swap ,运行命令:

swapon /swapfile

以上步骤做完,再次运行命令:

swapon -s

你会发现返回的信息概要:

Filename                Type        Size    Used    Priority
/swapfile               file        524284    0     -1

如果要机器重启的时候自动挂载 Swap ,那么还需要修改 fstab 配置。
用 vi 编辑 /etc/fstab 文件(echo "/swapfile swap swap defaults 0 0" >> /etc/fstab),在其最后添加如下一行:

/swapfile          swap            swap    defaults        0 0

最后,赋予 Swap 文件适当的权限:

chown root:root /swapfile
chmod 0600 /swapfile

这样一来,Swap 分区重启后都会生效了。

原文:http://teddysun.com/321.html

VPS上开通最低权限的SSH账户(debian和centos可用)

考虑到安全问题,我们不敢把自己的root账户给别人用。如果朋友急着要用怎么办呢?其实也很简单,给朋友建一个最低权限的SSH账户吧,只能用,不能运行SSH命令不能打开SFTP,对你的网站不会有影响。

方法很简单,第一步,登录SSH,执行如下命令,添加一个最低权限的用户,这里我要添加用户jiangzemin:

useradd -M -s /bin/false jiangzemin

第二步,添加该用户的密码:

passwd jiangzemin

然后会系统会让你输入两遍密码,完事后jiangzemin这个账户就建立成功了,可以直接使用了。

【其他常用命令】:

*如果要开通一个有时效的账户,且同时设置密码:,比如2015.1.5到期,且密码设为abc123:

useradd -s /bin/false -M jiangzemin -e 2015-01-05 && echo abc123 | passwd -stdin jiangzemin

*如果要变更一个账户的截止时间,比如2015.12.16到期:

usermod -e 2015-12-16 jiangzemin

本方法在debian和centos下测试通过,但是debian不支持-stdin,因此debian系统下改密码就得用passwd 用户名 这个方法了。

CentOS6用iptables实现端口/端口段转发

以下代码的作用是把本机指定端口流量转发到目标服务器上。


必须先开启服务器的转发功能,打开控制台输入 vi /etc/sysctl.conf 然后找到 net.ipv4.ip_forward = 0 修改为 net.ipv4.ip_forward = 1 随后保存。

执行 sysctl -p 来使更改生效。

然后执行以下命令来添加iptables转发规则

【单端口转发】

iptables -t nat -A PREROUTING -p tcp --dport [要转发的端口号] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A PREROUTING -p udp --dport [要转发的端口号] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A POSTROUTING -p tcp -d [要转发的服务器IP] --dport [要转发的端口号] -j SNAT --to-source [本机IP]
iptables -t nat -A POSTROUTING -p udp -d [要转发的服务器IP] --dport [要转发的端口号] -j SNAT --to-source [本机IP]

【端口段转发】,栗子:转发10000到20000这个端口段,则填10000:20000

iptables -t nat -A PREROUTING -p tcp --dport [要转发的端口段] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A PREROUTING -p udp --dport [要转发的端口段] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A POSTROUTING -p tcp -d [要转发的服务器IP] --dport [要转发的端口段] -j SNAT --to-source [本机IP]
iptables -t nat -A POSTROUTING -p udp -d [要转发的服务器IP] --dport [要转发的端口段] -j SNAT --to-source [本机IP]

查看添加的规则
iptables -t nat -vnL POSTROUTING --line-number
iptables -t nat -vnL PREROUTING --line-number

最后保存规则和重启iptables服务
service iptables save
service iptables restart

关于要孩子…

本文于2017年2月13日发布。

我本人是非常不愿意要小孩的,我可以说出一堆理由,因为我不喜欢小孩,觉得小孩是累赘,是负担,会改变我的人生轨迹(我感觉我现在挺好的)。

我还会说一个冠冕堂皇的借口:这个世界(国家)不论是自然环境还是社会环境都非常差,我不觉得我的孩子会喜欢,所以我认为我不应该自私的把他强行带到这个世界。

我说得再直白一点儿,我就是一个没有安全感的人,我不相信这个社会。我不认为我一辈子可以让他衣食无忧,我不觉得这个社会能让贫穷阶层有相对体面的生活…

那些劝我生孩子的人们,跟我说的都是一些自私的想法,什么什么孩子是婚姻的桥梁啊、老了病了可以照顾你啊等等等。

放屁!

私自的想法…

如果一段婚姻需要孩子去维系的话,那么我宁愿放弃这段婚姻;如果想要养孩子防老的话,这可不是一笔划算的投资,目前可代替的投资方案有很多。

不想说了… 这个话题有点儿沉重。

批量telnet检查 ip 端口状态

我们知道,使用telnet命令可以检查一个ip的端口的通畅状态。这里分享一下批量查询的方法。

1.需要下载一个命令行exe程序,微软官方出的的扫描器,叫PortQry。

2.在PortQry.exe同目录下,新建一个文本文档,如ips.txt,用于存放ip 端口列表。具体格式为ip地址,空格,端口号。一行一条。

3.同目录下,新建一个文本文档,文件名改为scan.bat,把下面的代码粘贴进去,
@echo off
@setlocal enabledelayedexpansion
@if exist notopen.log del /f /q notopen.log
@if exist open.log del /f /q open.log
@for /f "tokens=1,2* delims= " %%i in (ips.txt) do (
@portqry -n %%i -e %%j|find ": LISTENING" >nul
@if !errorlevel!==0 (
@echo %%i:%%j >>open.log
) else (
@echo %%i:%%j >>notopen.log
)
)

4.每次检查的时候,运行一下scan.bat,等窗口自动消失后,结果会输出到log文件。端口通的在open.log,不通的在notopen.log。

域名泛解析监控脚本

在bat文件里写入代码,一行一个监控对象。

echo [%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2%] >> d:domain_check.log & ping Ax3Jg57FGvN.baidu.com >> d:domain_check.log
echo [%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2%] >> d:domain_check.log & ping Ax3Jg57FGvN.sina.com.cn >> d:domain_check.log
echo [%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2%] >> d:domain_check.log & ping Ax3Jg57FGvN.qq.com >> d:domain_check.log

然后把这个bat脚本添加到计划任务里,比如每天下午2点执行。

生成的log文件会出现在D盘。

计算变形像素 sar 的方法

我们在rip视频的时候经常需要用到变形像素,也许你记住了常用的几个,但特殊的时候需要自己计算,而且计算方法极其简单。

我们都知道压制psp支持的480视频,需要先resize到704×480,然后再在x264中添加 --sar 40:33(16:9比例)或者 --sar 10:11(4:3比例),但很多人不知道这个sar是怎么算出来的。

以压制480P的16:9视频为例,你添加 --sar 40:33的目的就是要让该视频在psp里显示为853.333×480对吧,于是这个sar的计算方式为853.333:704=40:33,,显示长 度为853.333,实际长度为704,所以sar其实就是显示长度:实际长度,约分后就是40:33。

以压制480P的4:3视频为例,这回你需要添加 --sar 10:11,目的是要让视频在psp里显示为640×480,于是sar计算方法为640:704=10:11,显示长度为640,实际长度为704,所以显示长度:实际长度,约分后就是10:11。

所以,--sar就是视频的显示长度与实际长度的比值

以上sar适用于psp视频压制,电脑则不一样,因为不需要resize成704×480这样令人如此郁闷的步骤…

CentOS6、CentOS7 更换内核

CentOS6内核更换为:2.6.32-504.3.3.el6.x86_64

rpm -ivh http://www.johntitorblog.com/wp-content/oldfile/kernel-firmware-2.6.32-504.3.3.el6.noarch.rpm

rpm -ivh http://www.johntitorblog.com/wp-content/oldfile/kernel-2.6.32-504.3.3.el6.x86_64.rpm --force


CentOS7内核更换为:3.10.0-229.1.2.el7.x86_64

rpm -ivh http://www.johntitorblog.com/wp-content/oldfile/kernel-3.10.0-229.1.2.el7.x86_64.rpm --force


查看内核是否安装成功

rpm -qa | grep kernel

然后重启。

uname -r 查看是否生效


此外,centos7切换内核更完整的文章如下。

1. 添加repo库

yum -y install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

2. 导入签名

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

3. 差看长期支持版本

[root@localhost ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available | grep kernel-lt
kernel-lt.x86_64                        5.4.210-1.el7.elrepo       elrepo-kernel
kernel-lt-devel.x86_64                  5.4.210-1.el7.elrepo       elrepo-kernel
kernel-lt-doc.noarch                    5.4.210-1.el7.elrepo       elrepo-kernel
kernel-lt-headers.x86_64                5.4.210-1.el7.elrepo       elrepo-kernel
kernel-lt-tools.x86_64                  5.4.210-1.el7.elrepo       elrepo-kernel
kernel-lt-tools-libs.x86_64             5.4.210-1.el7.elrepo       elrepo-kernel
kernel-lt-tools-libs-devel.x86_64       5.4.210-1.el7.elrepo       elrepo-kernel

4. 安装长期稳定版本

yum --enablerepo=elrepo-kernel install kernel-lt

5. 切换内核版本

# 查看所有可用内核版本
[root@localhost ~]# grubby --info=ALL | grep ^kernel
kernel=/boot/vmlinuz-0-rescue-e6b1be1665514df5b07c55fd799bfbf0
kernel=/boot/vmlinuz-5.4.210-1.el7.elrepo.x86_64
kernel=/boot/vmlinuz-3.10.0-1160.66.1.el7.x86_64
kernel=/boot/vmlinuz-3.10.0-1160.el7.x86_64
kernel=/boot/vmlinuz-0-rescue-f8f95d1d9b764ae99f2fc289a16fc263
#查看默认的内核版本
[root@localhost ~]# grubby --default-kernel
/boot/vmlinuz-3.10.0-1160.66.1.el7.x86_64
# 设置内核版本
grubby --set-default "/boot/vmlinuz-5.4.210-1.el7.elrepo.x86_64"
#重启
reboot

6. 删除旧内核

[root@localhost ~]# rpm -qa | grep kernel
kernel-tools-libs-3.10.0-1160.66.1.el7.x86_64
kernel-3.10.0-1160.66.1.el7.x86_64
kernel-tools-3.10.0-1160.66.1.el7.x86_64
kernel-3.10.0-1160.el7.x86_64
kernel-lt-5.4.210-1.el7.elrepo.x86_64

yum remove kernel-tools-libs-3.10.0-1160.66.1.el7.x86_64 \
kernel-3.10.0-1160.66.1.el7.x86_64 \
kernel-tools-3.10.0-1160.66.1.el7.x86_64 \
kernel-3.10.0-1160.el7.x86_64

[root@localhost ~]# uname -r
5.4.210-1.el7.elrepo.x86_64

7. 离线升级
7.1 下载rpm包

curl -O https://mirrors.aliyun.com/elrepo/kernel/el7/x86_64/RPMS/kernel-lt-5.4.212-1.el7.elrepo.x86_64.rpm
7.2 安装

yum install kernel-lt-5.4.212-1.el7.elrepo.x86_64.rpm
7.3 批量删除旧核心

rpm -qa | grep kernel | grep -v $(uname -r) | awk '{print "yum remove -y "$1}' | sh
END