Monthly Archives: 4月 2018

4月 30th, 2018

 

使用过Windows的人都知道,在使用windows系统的过程中系统会变得越来越慢。而对于Windows下饱受诟病的各种垃圾文件都需要自己想办法删除,不然系统将会变得越来越大,越来越迟钝!windows怎么清理垃圾相信大家都知道的,那么linux下怎么清理系统垃圾呢?

Linux的文件系统比Windows的要优秀,不会产生碎片,对于长时间运行的服务器来说尤为重要,而且Linux系统本身也不会像Windows一样产生大量的垃圾文件。不知道这个说法有没有可信度!至少我们可以确定的是linux系统的文件系统是比较优秀的!

错误

  1. rm -f logfile

原因

应用已经打开文件句柄,直接删除会造成:

1.应用无法正确释放日志文件和写入

2.显示磁盘空间未释放

正确

  1. cat /dev/null >logfile

把一下代码保存为.sh后缀脚本来运行即可清除Linux系统日志

  1. #!/bin/sh
  2. cat /dev/null >/var/log/syslog
  3. cat /dev/null >/var/adm/sylog
  4. cat /dev/null >/var/log/wtmp
  5. cat /dev/null >/var/log/maillog
  6. cat /dev/null >/var/log/messages
  7. cat /dev/null >/var/log/openwebmail.log
  8. cat /dev/null >/var/log/maillog
  9. cat /dev/null >/var/log/secure
  10. cat /dev/null >/var/log/httpd/error_log
  11. cat /dev/null >/var/log/httpd/ssl_error_log
  12. cat /dev/null >/var/log/httpd/ssl_request_log
  13. cat /dev/null >/var/log/httpd/ssl_access_log

另外清理linux系统垃圾还有以下命令

sudo apt-get autoclean 清理旧版本的软件缓存

sudo apt-get clean 清理所有软件缓存

sudo apt-get autoremove 删除系统不再使用的孤立软件

 

4月 30th, 2018

日志的轮转是一种日志管理策略,可以简化管理。

以/var/log/messages日志文件为例:

先分四步讲解下轮转的过程。

1.系统只有messages文件,还没有轮转

touch messages

2.第一次轮转生成messages.1

mv messages messages.1

touch messages

3.第二次轮转生成messages.2

mv messages.1 messages.2

mv messages messages.1

touch messages

4.第三次轮转生成messages.3

mv messages.2 messages.3

mv messages.1 messages.2

mv messages messages.1

toouch messages

这样日志达到一定条件就会这样不断生成新的文件,可以看出,日志的轮转其本质就是旧文件的移动和新文件的创建。

———————————————————————-

日志的轮转其主配置文件为/etc/logrotate.conf

[root@localhost ~]# cat /etc/logrotate.conf|grep -v ^# |grep -v ^$

weekly

rotate 4

create

include /etc/logrotate.d

/var/log/wtmp {

monthly

minsize 1M

create 0664 root utmp

rotate 1

}

全局配置:

weekly :表示所有日志每周进行一次轮转

rotate 4 :表示所有日志默认只保留一个旧文件

create :由于旧文件被轮转了,所以新建一个日志文件来存储日志

include /etc/logrotate.d :次配置文件所在目录

 

/var/log/wtmp为局部配置:

monthly :表示所有日志每周进行一次轮转

minsize 1M :轮转日志的最小大小

create 0664 root utmp :创建文件时,指定权限、属主和属组

rotate 1 :保留一个旧文件

这全局配置和局部配置就类似C++中类的继承。

———————————————————————-

自定义日志轮转:

自定义日志轮转前要了解下面几个命令:

需要执行的外部命令放在sharedscripts和endscript两行之间

prerotate : logrotate命令运行前执行脚本内容

postrotate:logrotate命令运行后执行脚本内容

———————————————————————-

下面说个实例:

配置/var/log/mytest.log日志文件记录所有日志,并加上高级权限a;

echo “*.info/var/log/mytest.log”>>/etc/syslog.conf

/etc/init.d/syslog restart

chattr +a /var/log/mytest.log

轮转配置

vim /etc/logrotate.d/mytest

/var/log/mytest.log{

mothly

size=10M

rotate 5

compress压缩保存

sharedscripts

prerotate

/usr/bin/chattr -a /var/log/mytest.log

endscripts

sharedscripts

postrotate

/usr/bin/kill -HUP syslog  以HUP方式从新加载服务,相当于从新读取配置文件,不改变进程id号

/usr/bin/chattr +a /var/log/mytest.log

endscripts

}

最后可以用下这个命令:

# logrotate -v /etc/logrotate.conf

测试有没有日志需要轮转-f 强制轮转

 

4月 30th, 2018

http://www.onedayoneclass.com/index.php/Home/Index/getopenId.html

改为:

http://www.onedayoneclass.com/Home/Index/getopenId.html

 

htaccess文件必须放到跟目录下

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
4月 30th, 2018

sfc修复:

Win+X—命令提示符(管理员)—sfc /scannow—Enter可以查看是否存在系统文件损坏等问题

 

以管理员权限运行命令提示符,执行“dism /online /cleanup-image /restorehealth”命令,Windows将自动联网修复损坏的文件。

4月 30th, 2018

在 linux 编译内核时 make menuconfig 报了下面的错误。

*** Unable to find the ncurses libraries or the

*** required header files.

*** ‘make menuconfig’ requires the ncurses libraries.

*** Install ncurses (ncurses-devel) and try again.

这是因为系统中缺少 ncurses-devel,安装一下就可以了

CentOS:

yum install -y ncurses-devel

Ubuntu:

sudo apt-get install ncurses
4月 29th, 2018

Ubuntu 下 vi 输入方向键会变成 ABCD,这是 Ubuntu 预装的是 vim tiny 版本,安装 vim full 版本即可解决。

先卸载vim-tiny:

$ sudo apt-get remove vim-common

再安装vim full:

$ sudo apt-get install vim

然后我们就惊喜地发现恢复正常了。

4月 28th, 2018

Linux系统查看当前时间的命令:

  一、查看和修改Linux的时区

1. 查看当前时区

命令 : “date -R”

2. 修改设置Linux服务器时区

方法 A

命令 : “tzselect”

方法 B 仅限于RedHat Linux 和 CentOS

命令 : “timeconfig”

方法 C 适用于Debian

命令 : “dpkg-reconfigure tzdata”

3. 复制相应的时区文件,替换系统时区文件;或者创建链接文件

cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime

例如:在设置中国时区使用亚洲/上海(+8)

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

二、查看和修改Linux的时间

1. 查看时间和日期

命令 : “date”

2.设置时间和日期

例如:将系统日期设定成2009年11月3日的命令

命令 : “date -s 11/03/2009”

将系统时间设定成下午5点55分55秒的命令

命令 : “date -s 17:55:55”

3. 将当前时间和日期写入BIOS,避免重启后失效

命令 : “hwclock -w”

注:

date

不加参数可以直接看到当前日期时间

cal

4月 28th, 2018

火狐SSL收到一个弱临时Diffie-Hellman连接失败解决方法

最近用火狐访问一些网站的时候提示:连接 https网址 时发生错误。 在服务器密钥交换握手信息中 SSL 收到了一个弱临时 Diffie-Hellman 密钥。 (错误码: ssl_error_weak_server_ephemeral_dh_key)

火狐 SSL 收到了一个弱临时Diffie-Hellman连接失败解决方法一、

 

使用火狐浏览器,地址栏里输入 about:config,回车新建或修改以下4个布尔值为 false 即可(搜索dhe能找到):

security.ssl3.dhe_dss_aes_128_sha

security.ssl3.dhe_rsa_aes_128_sha

security.ssl3.dhe_rsa_aes_256_sha

security.ssl3.dhe_rsa_des_ede3_sha

 

4月 27th, 2018

在Linux系统的目录/var/run下面一般我们都会看到很多的*.pid文件。而且往往新安装的程序在运行后也会在/var/run目录下面产生自己的pid文件。那么这些pid文件有什么作用呢?它的内容又是什么呢?

(1) pid文件的内容:pid文件为文本文件,内容只有一行, 记录了该进程的ID。

用cat命令可以看到。

(2) pid文件的作用:防止进程启动多个副本。只有获得pid文件(固定路径固定文件名)写入权限(F_WRLCK)的进程才能正常启动并把自身的PID写入该文件中。其它同一个程序的多余进程则自动退出。

(3) 编程技巧:

调用fcntl设置pid文件的锁定F_SETLK状态,其中锁定的标志位F_WRLCK。

如果成功锁定,则写入进程当前PID,进程继续往下执行。

如果锁定不成功,说明已经有同样的进程在运行了,当前进程结束退出。

lock.l_type = F_WRLCK;
lock.l_whence = SEEK_SET;

if (fcntl(fd, F_SETLK, &lock) < 0){
//锁定不成功, 退出……
}
sprintf (buf, “%d\n”, (int) pid);
pidsize = strlen(buf);
if ((tmp = write (fd, buf, pidsize)) != (int)pidsize){
//写入不成功, 退出……
}

(4) 一些注意事项:
i) 如果进程退出,则该进程加的锁自动失效。
ii) 如果进程关闭了该文件描述符fd, 则加的锁失效。(整个进程运行期间不能关闭此文件描述符)
iii) 锁的状态不会被子进程继承。如果进程关闭则锁失效而不管子进程是否在运行。

TAGS:
4月 27th, 2018

CentOS6以下系统(含)使用watchtmp + cron来实现定时清理临时文件的效果,这点在CentOS7发生了变化,在CentOS7下,系统使用systemd管理易变与临时文件,与之相关的系统服务有3个:

systemd-tmpfiles-setup.service  :Create Volatile Files and Directories
systemd-tmpfiles-setup-dev.service:Create static device nodes in /dev
systemd-tmpfiles-clean.service :Cleanup of Temporary Directories

相关的配置文件也有3个地方:

/etc/tmpfiles.d/*.conf
/run/tmpfiles.d/*.conf
/usr/lib/tmpfiles.d/*.conf

/tmp目录的清理规则主要取决于/usr/lib/tmpfiles.d/tmp.conf文件的设定,默认的配置内容为:

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# See tmpfiles.d(5) for details

# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d           #   清理/tmp下10天前的目录和文件
v /var/tmp 1777 root root 30d       #   清理/var/tmp下30天前的目录和文件

# Exclude namespace mountpoints created with PrivateTmp=yes
x /tmp/systemd-private-%b-*
X /tmp/systemd-private-%b-*/tmp
x /var/tmp/systemd-private-%b-*
X /var/tmp/systemd-private-%b-*/tmp

我们可以配置这个文件,比如你不想让系统自动清理/tmp下以tomcat开头的目录,那么增加下面这条内容到配置文件中即可:

x /tmp/tomcat.*
TAGS: ,