Press "Enter" to skip to content

分类: Linux

Linux md5sum校验文件是否被篡改

因为有些平台日常不会作更新操作,担心文件被非法修改自己又不知道,所以采用linux提供的简单命令来实现文件校验。

先把目录中的所有文件进行MD5,sort参数是排序后存放在md5.txt文件中,这个文件保存好,因为这是你历史的文件的md5,如果目录中某个文件被修改,在校验中就被找出来。

find /data -type f -print0 | xargs -0 md5sum | sort >md5.txt

校验文件是否被修改过,不显示正常的文件采用grep -v OK

root@kiccleaf data]# md5sum -c md5.txt | grep -v OK
/data/g.sh: FAILED
md5sum: WARNING: 1 computed checksum did NOT match

Comments closed

Linux中的chkconfig增加自己想要启动项

总有些需要自己配置启动项的,简单记录一下过程

#先写一个自己需要执行的软件或是其他要执行的事项,这里就拿同步系统时间作为例子
[root@localhost ~]# vim /root/syncDate.sh
#!/bin/bash
/usr/sbin/ntpdate cn.pool.ntp.org>/root/times.log
[root@localhost ~]# chmod +x /root/syncDate.sh

#开始写启动项文件kiccleaf
[root@localhost ~]# vim /etc/init.d/kiccleaf
#!/bin/bash
# chkconfig: 3 88 88
/bin/bash /root/syncDate.sh &>/dev/null 2&>/dev/null

注意:# chkconfig: 3 88 88 这一行很重要,如果不添加,
执行chkconfig –add kiccleaf 会提示失败

[root@localhost ~]# chkconfig --add kiccleaf
service kiccleaf does not support chkconfig
#以上是失败提醒,未增加# chkconfig: 3 88 88

#增加可执行权限
[root@localhost ~]# chmod +x /etc/init.d/kiccleaf

#添加到chkconfig,开机自启动
[root@localhost ~]# chkconfig --add kiccleaf
[root@localhost ~]# chkconfig --list kiccleaf

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

kiccleaf        0:off   1:off   2:off   3:on    4:off   5:off   6:off
#重启系统,查看结果

[root@localhost ~]# cat /root/times.log
12 Jun 11:38:34 ntpdate[10221]: step time server 203.107.6.88 offset -28799.359688 sec
操作成功

#关闭开机启动

[root@localhost ~]# chkconfig kiccleaf off
[root@localhost ~]# chkconfig --list kiccleaf
kiccleaf        0:off   1:off   2:off   3:off   4:off   5:off   6:off

#从chkconfig管理中删除kiccleaf
[root@localhost ~]# chkconfig --del kiccleaf
#查看列表中是否还存在kiccleaf启动项,结果已经没有
[root@localhost ~]# chkconfig --list kiccleaf
service kiccleaf supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add kiccleaf')

关于chkconfig更多内容,可以参考:Linux下chkconfig命令详解

Comments closed

linux中rc.local设置开机自启没有生效解决方案

经常在一些小细节方面卡壳,先查看一下文件是否有执行属性

[root@localhost ~]# ll /etc/rc.d/rc.local
-rw-r--r--  1 root root 507 Jun 12 11:01 /etc/rc.d/rc.local

#上面可以看出没有可执行权限,添加以下可执行权限即可
[root@localhost ~]# chmod +x  /etc/rc.d/rc.local
[root@localhost ~]# ll /etc/rc.d/rc.local
-rwxr-xr-x 1 root root 507 Jun 12 11:01 /etc/rc.d/rc.local
#执行后,查看已经增加了可执行权限

想在系统启动后执行的命令可以添加到/etc/rc.d/rc.local文件
比如启动时同步系统时间

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
#同步系统时间
/usr/sbin/ntpdate cn.pool.ntp.org
Comments closed

发现大量的TIME_WAIT解决办法

netstat -ae|grep mysql

tcp        0      0 kiccleaf:46464      188.*.*.*:mysql    TIME_WAIT   root       0         
tcp        0      0 kiccleaf:42952      188.*.*.*:mysql    TIME_WAIT   root       0         
tcp        0      0 kiccleaf:46597      188.*.*.*:mysql    TIME_WAIT   root       0         
tcp        0      0 kiccleaf:45692      188.*.*.*:mysql    TIME_WAIT   root       0         
tcp        0      0 kiccleaf:44282      188.*.*.*:mysql    TIME_WAIT   root       0

—此处省略N行

tcp 0 0 kiccleaf:45692 188.*.*.*:mysql TIME_WAIT root 0
tcp 0 0 kiccleaf:44282 188.*.*.*:mysql TIME_WAIT root 0

发现系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决:
vim /etc/sysctl.conf

编辑文件,加入以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30

然后执行 /sbin/sysctl -p 让参数生效。

net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间

修改之后,再用
netstat -ae|grep mysql

到此突然间系统的性能提升了,访问的网站程序速度也越顺畅了。

Leave a Comment

看看谁一直在猜你的Linux系统密码

首先找到/var/log/btmp 这上文件看看是否比较大这里记录了很多登录错误的信息,那么用一句话来列出到底是哪个IP经常在猜你系统的密码吧!

查看恶意ip试图登录次数:

lastb | awk '{ print $3}' | sort | uniq -c | sort -n

Linux可以利用iptables 防火墙把它屏蔽掉

#封IP的命令
iptables -I INPUT -s *.*.*.* -j DROP
#保存上述规则
service iptables save

另外建议还是把ssh的22端口改成其他端口吧!

收集了一些log下文件的解释

以下介绍的是20个位于/var/log/ 目录之下的日志文件。其中一些只有特定版本采用,如dpkg.log只能在基于Debian的系统中看到。

/var/log/messages — 包括整体系统信息,其中也包含系统启动期间的日志。此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。
/var/log/dmesg — 包含内核缓冲信息(kernel ring buffer)。在系统启动时,会在屏幕上显示许多与硬件有关的信息。可以用dmesg查看它们。
/var/log/auth.log — 包含系统授权信息,包括用户登录和使用的权限机制等。
/var/log/boot.log — 包含系统启动时的日志。
/var/log/daemon.log — 包含各种系统后台守护进程日志信息。
/var/log/dpkg.log – 包括安装或dpkg命令清除软件包的日志。
/var/log/kern.log – 包含内核产生的日志,有助于在定制内核时解决问题。
/var/log/lastlog — 记录所有用户的最近信息。这不是一个ASCII文件,因此需要用lastlog命令查看内容。
/var/log/maillog /var/log/mail.log — 包含来着系统运行电子邮件服务器的日志信息。例如,sendmail日志信息就全部送到这个文件中。
/var/log/user.log — 记录所有等级用户信息的日志。
/var/log/Xorg.x.log — 来自X的日志信息。
/var/log/alternatives.log – 更新替代信息都记录在这个文件中。
/var/log/btmp – 记录所有失败登录信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp | more“。
/var/log/cups — 涉及所有打印信息的日志。
/var/log/anaconda.log — 在安装Linux时,所有安装信息都储存在这个文件中。
/var/log/yum.log — 包含使用yum安装的软件包信息。
/var/log/cron — 每当cron进程开始一个工作时,就会将相关信息记录在这个文件中。
/var/log/secure — 包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里。
/var/log/wtmp或/var/log/utmp — 包含登录信息。使用wtmp可以找出谁正在登陆进入系统,谁使用命令显示这个文件或信息等。
/var/log/faillog – 包含用户登录失败信息。此外,错误登录命令也会记录在本文件中。

除了上述Log文件以外, /var/log还基于系统的具体应用包含以下一些子目录:

/var/log/httpd/或/var/log/apache2 — 包含服务器access_log和error_log信息。
/var/log/lighttpd/ — 包含light HTTPD的access_log和error_log。
/var/log/mail/ – 这个子目录包含邮件服务器的额外日志。
/var/log/prelink/ — 包含.so文件被prelink修改的信息。
/var/log/audit/ — 包含被 Linux audit daemon储存的信息。
/var/log/samba/ – 包含由samba存储的信息。
/var/log/sa/ — 包含每日由sysstat软件包收集的sar文件。
/var/log/sssd/ – 用于守护进程安全服务。

Leave a Comment

linux 查看系统信息命令(比较全)

收集常用的Linux基本系统信息命令

 uname -a # 查看内核/操作系统/CPU信息
 head -n 1 /etc/issue # 查看操作系统版本
 cat /proc/cpuinfo # 查看CPU信息
 hostname # 查看计算机名
 lspci -tv # 列出所有PCI设备
 lsusb -tv # 列出所有USB设备
 lsmod # 列出加载的内核模块
 env # 查看环境变量资源
 free -m # 查看内存使用量和交换区使用量
 df -h # 查看各分区使用情况
 du -sh <目录名> # 查看指定目录的大小
 grep MemTotal /proc/meminfo # 查看内存总量
 grep MemFree /proc/meminfo # 查看空闲内存量
 uptime # 查看系统运行时间、用户数、负载
 cat /proc/loadavg # 查看系统负载磁盘和分区
 mount | column -t # 查看挂接的分区状态
 fdisk -l # 查看所有分区
 swapon -s # 查看所有交换分区
 hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
 dmesg | grep IDE # 查看启动时IDE设备检测状况网络
 ifconfig # 查看所有网络接口的属性
 iptables -L # 查看防火墙设置
 route -n # 查看路由表
 netstat -lntp # 查看所有监听端口
 netstat -antp # 查看所有已经建立的连接
 netstat -s # 查看网络统计信息进程
 ps -ef # 查看所有进程
 top # 实时显示进程状态用户
 w # 查看活动用户
 id <用户名> # 查看指定用户信息
 last # 查看用户登录日志
 cut -d: -f1 /etc/passwd # 查看系统所有用户
 cut -d: -f1 /etc/group # 查看系统所有组
 crontab -l # 查看当前用户的计划任务服务
 chkconfig –list # 列出所有系统服务
 chkconfig –list | grep on # 列出所有启动的系统服务程序
 rpm -qa # 查看所有安装的软件包
Leave a Comment

Linux注销其他登录用户或注销登录意外被断开用户

经常在操作Linux的时候,偶尔会发生断网或是在智能多线路环境中操作服务器时,时常被断开,但用户登录的进程又在,并没有退出。
简单的方法实现已经登录的用户注销操作

[root@kiccleaf ~]# who
root     pts/1        2014-06-04 12:07 (27.115.*.*)
root     pts/2        2014-06-04 13:31 (58.247.*.*)
root     pts/3        2014-06-04 13:42 (58.246.*.*)
root     pts/4        2014-06-04 13:56 (140.207.*.*)
root     pts/5        2014-06-04 14:01 (140.207.*.*)
#结束掉一些登录的用户
[root@kiccleaf ~]# pkill -kill -t pts/1
Leave a Comment

shell中的sleep命令

在Linux或Unix系统中最方便最常用的是shell 脚本,在一些脚本程序中经常需要做一些延时处理。收集和整理了一下简单的资料备用
下面来说一下 sleep 和 usleep 的区别:

sleep : 默认以秒为单位。

usleep : 默认以微秒为单位。

1s = 1000ms = 1000000us

sleep 不但可以用秒为单位,还可以指定延迟的单位,例如:

sleep 1s 表示延迟一秒

sleep 1m 表示延迟一分钟

sleep 1h 表示延迟一小时

sleep 1d 表示延迟一天

Leave a Comment

个性化Linux字符界面,登录输出显示信息

字符界面操作久了,就没有太多的新鲜感,所以加点登录时的个性化显示,让心情变的更愉快!
如果采用root账号登录编辑/etc/bashrc内容,那所有其他帐号登录都会提示相同的内容,如果想每个用户进行配置,那就去每个帐号的目录下去配置吧。
这里提供改一个文件所有帐号都能看到的个性显示内容。

vim /etc/bashrc

在顶部添加以下内容:

c2="$(tput bold)$(tput setaf 2)"
echo "$c2  _     _            _                 ___ "
echo "$c2 | |   (_)          | |               / __)"
echo "$c2 | |  _ _  ____ ____| | _____ _____ _| |__ "
echo "$c2 | |_/ ) |/ ___) ___) || ___ (____ (_   __)"
echo "$c2 |  _ (| ( (__( (___| || ____/ ___ | | |   "
echo "$c2 |_| \_)_|\____)____)\_)_____)_____| |_|   "
echo "$(tput sgr0)"

编辑内容:
Linux01
用户登录后效果:
Linux2

Leave a Comment

Nginx HTTP Post Method: 405 Method not allowed解决方法

最近维护一台RedHat 5.4 X64系统,环境是Nginx,跑着一个论坛,需要向HTML页面提交POST数据,结果都被拦截下来了,显示错误:“nginx 405 Not Allowed”,是乎没有很好的解决办法,唯一能做的就是重新编译Nginx源码和编辑conf文件。
需要修改Nginx中的C源码文件位于 /nginx源码目录/src/http/modules/ngx_http_static_module.c ,找到如下代码:

    if (r->method == NGX_HTTP_POST) {
        return NGX_HTTP_NOT_ALLOWED;
    }


注释掉如下:

/*if (r->method == NGX_HTTP_POST) {
        return NGX_HTTP_NOT_ALLOWED;
    }
*/


然后再重新编译 make
复制/nginx源码目录/ objs 目录下的 nginx至安装的Nginx目录下,重启Nginx生效。

对于Nginx,可以修改nginc.conf配置文件,改变“405错误”为“200 ok”,并配置location来解决,方法如下:

server
{
    listen       80;
    server_name  www.kiccleaf.com;
    index index.html index.htm index.php;
    root  /data/kiccleaf;  

    if ($host != 'www.kiccleaf.com' ) {
         rewrite ^/(.*)$ http://www.kiccleaf.com/$1 permanent;
    }
    location ~ .*\.(php|php5)?$
    {
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
    }
    #添加以下405代码
    error_page   405 =200 @405;
    location @405
    {
        root  /data/kiccleaf;
    }
}


也可以简单的编写成

server
{
    listen       80;
    server_name  www.kiccleaf.com;
    index index.html index.htm index.php;
    root  /data/kiccleaf;  

    if ($host != 'www.kiccleaf.com' ) {
         rewrite ^/(.*)$ http://www.kiccleaf.com/$1 permanent;
    }
    location ~ .*\.(php|php5)?$
    {
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
    }
    #添加以下405代码
    error_page 405 =200 $uri;
}
Leave a Comment