分类
学习笔记

查找Linux系统中的占用磁盘空间最大的前10个文件或文件夹

当磁盘空间被迅速占用的时候,我们必须找出一些,比较占用磁盘空间的文件或者文件夹。通常情况下,最有可能找出占用磁盘空间文件或文件夹的地方,主要是 /tmp or /var or /home。目前没有单个命令来完成查找的工作,通常可以使用一些命令的组合来帮助您找出磁盘上比较占用空间的文件或者文件夹。主要用到下面的三个命令:

  • du : 计算出单个文件或者文件夹的磁盘空间占用.
  • sort : 对文件行或者标准输出行记录排序后输出.
  • head : 输出文件内容的前面部分.

用下面的命令组合就可以完成上述查找工作:

du -a /var | sort -n -r | head -n 10

如果需要输出可读性高的内容,请使用如下命令:

du -hsx * | sort -rh | head -10

 

分类
日记

Ubuntu下添加开机启动脚本

1、方法一,编辑rc.loacl脚本

Ubuntu开机之后会执行/etc/rc.local文件中的脚本,所以我们可以直接在/etc/rc.local中添加启动脚本。

当然要添加到语句:exit 0 前面才行。

如: sudo vi /etc/rc.local

然后在 exit 0 前面添加好脚本代码。

2、方法二,添加一个Ubuntu的开机启动服务。

如果要添加为开机启动执行的脚本文件,可先将脚本复制或者软连接到/etc/init.d/目录下, 然后用:update-rc.d xxx defaults NN命令(NN为启动顺序),将脚本添加到初始化执行的队列中去。注意如果脚本需要用到网络,则NN需设置一个比较大的数字,如99。

1) 将你的启动脚本复制到 /etc/init.d目录下

以下假设你的脚本文件名为 test。

2) 设置脚本文件的权限

$ sudo chmod 755 /etc/init.d/test

3) 执行如下命令将脚本放到启动脚本中去:

$ cd /etc/init.d
$ sudo update-rc.d test defaults 95

注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。该命令的输出信息参考如下:

update-rc.d: warning: /etc/init.d/test missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
  Adding system startup for /etc/init.d/test ...
    /etc/rc0.d/K95test -> ../init.d/test
    /etc/rc1.d/K95test -> ../init.d/test
    /etc/rc6.d/K95test -> ../init.d/test
    /etc/rc2.d/S95test -> ../init.d/test
    /etc/rc3.d/S95test -> ../init.d/test
    /etc/rc4.d/S95test -> ../init.d/test
    /etc/rc5.d/S95test -> ../init.d/test
卸载启动脚本的方法:
$ cd /etc/init.d
$ sudo update-rc.d -f test remove

命令输出的信息参考如下:

Removing any system startup links for /etc/init.d/test ...
    /etc/rc0.d/K95test
    /etc/rc1.d/K95test
    /etc/rc2.d/S95test
    /etc/rc3.d/S95test
    /etc/rc4.d/S95test
    /etc/rc5.d/S95test
    /etc/rc6.d/K95test
分类
日记

Linux修改默认SSH端口

一、修改SSH端口

默认的SSH端口是22,为防止扫描端口破解密码,修改ssh端口为其他的数字,是非常有必要的。

SSH登陆VPS,修改配置文件。

vi /etc/ssh/sshd_config

找到#Port 22,去掉前面的#,并修改为Port 12345(数字尽量用4位数,避免被占用),然后重启就可生效。
CentOS 重启SSH : service sshd restart
Debian重启SSH:service ssh restart

二、禁止ROOT账户登陆

首先:添加用户名 
useradd test
为新用户名设置密码
passwd test

其次:禁止root登陆
vi /etc/ssh/sshd_config
找到PermitRootLogin yes,去掉前面的#,并将yes改为no,保存然后重启ssh。

最后:新添加的用户登陆
登陆用 su root 命令进行提权,让新用户有ROOT的管理权限。
举例:
login as: test          #新用户名
password:*****        #新用户密码
su root                     #提权
Password:*****        #原来ROOT密码
分类
学习笔记

vim命令简表

宏命令(Macros)

高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的:

:qx

开始记录宏,并将结果存入寄存器x

q

退出记录模式

@x

播放记录在x寄存器中的宏命令

稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,表示要重复多少次,比如@x20,可以重复20次。这个在文本的批处理中是非常有用的。

分类
学习笔记

Linux: Find Out Which Process Is Listening Upon a Port

  1. netstat – a command-line tool that displays network connections, routing tables, and a number of network interface statistics.
  2. fuser – a command line tool to identify processes using files or sockets.
  3. lsof – a command line tool to list open files under Linux / UNIX to report a list of all open files and the processes that opened them.
  4. /proc/$pid/ file system – Under Linux /proc includes a directory for each running process (including kernel processes) at /proc/PID, containing information about that process, notably including the processes name that opened port.

example

查询rails端口占用进程:
例如:lsof -i:3000
杀掉进程:
$ kill -9 2212
其中-9 制定了传递给进程的信号是9,即强制、尽快终止进程。

2212则是上面查到的PID。

kill、killall

这两个命令是用来向进程发送信号的。kill 命令需要进程号作为参数,而 killall 需要进程名称。

另外,还可以在这两个命令后附加要发送信号序号作为参数。默认情况下,它们都向相关进程发送信号 15 (TERM)。例如,如果您想要终止 PID 为 785 的进程,请输入以下命令:

$ kill 785

如果您要向它发送信号 19 (STOP),请输入:

$ kill -19 785

假设您知道想要终止的进程的命令名称。您可以通过该名称来终止它,而不用再使用 ps 找出该进程的进程号:

$ killall -9 mozilla