分类: Linux系统

  • 自动带日期cp文件

    cp listener.ora listener.ora.$(date +%Y%m%d)
    脚本
    #set date time now
    a=`date +%Y%m%d-%H:%M:%S`
    #copy UTNSERVER.LOG to /log
    cp -f /opt/utnsvr/yxxl/server/UTNSERVER.LOG /opt/utnsvr/yxxl/log/$a.log

  • CentOS下修改httpd.conf开启gzip压缩传输

    1. 首页查看一下mod_deflate、mod_headers两个模块是否开启,
    cat /etc/httpd/conf/httpd.conf | grep mod_deflate
    #输出LoadModule deflate_module modules/mod_deflate.so
    cat /etc/httpd/conf/httpd.conf | grep mod_headers
    #输出LoadModule headers_module modules/mod_headers.so

    如果列出文字前都带#号,修改httpd.conf去除
    LoadModule deflate_module modules/mod_deflate.so
    LoadModule headers_module modules/mod_headers.so

    2. 在httpd.conf末尾加入下面文字,并保存
    <IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
    AddOutputFilterByType DEFLATE text/*
    AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript
    </IfModule>

    注解:

    SetOutputFilter DEFLATE

    设置压缩等级,可设置为1到9.数字越大压缩比例越高,相应cpu也越累

    SetOutputFilter DEFLATE
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .(?:pdf|doc|avi|mov|mp3|rm)$ no-gzip dont-vary

    以上三行分别设置对图片、压缩文件、视频文件等格式的文件不使用gzip压缩

    AddOutputFilterByType DEFLATE text/*

    对文字启用压缩

    AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript

    对js启用压缩
    例子:
    #######################################
    <IfModule deflate_module>
    SetOutputFilter DEFLATE
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .(?:pdf|doc|avi|mov|mp3|rm)$ no-gzip dont-vary
    AddOutputFilterByType DEFLATE text/*
    AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript
    </IfModule>
    #######################################
    3. 重启httpd

    service httpd restart

  • Httpd 错误 No space left on device

    tail /var/log/httpd/error_log
    [Thu Jan 23 00:17:44 2014] [notice] Digest: done
    [Thu Jan 23 00:17:44 2014] [emerg] (28)No space left on device: Couldn’t create accept lock (/etc/httpd/logs/accept.lock.23808) (5)

    解决办法:
    1、输入:ipcs -s 看有没有超过5个,如果有请执行下面2的命令:
    2、ipcs -s | perl -ane ‘/^0x00000000/ && `ipcrm -s $F[1]`’
    3、重启Apache服务。(到此问题解决!)
    ipcs -s | grep apache | perl -e ‘while (<STDIN>) { @a=split(/\s+/); print `ipcrm sem $a[1]`}’
    网上有人说用上面这条命令或者重启服务器之后也可以解决,没有尝试,因为我用命令2之后已经解决了!

    df -ih
    Filesystem            Inodes   IUsed   IFree IUse% Mounted on
    /dev/sda3                35M    456K     35M    2% /
    tmpfs                    16M       5     16M    1% /dev/shm
    /dev/sda1               126K      41    125K    1% /boot

    原因:
    看到这个错误,第一个反应是磁盘空间满了;但 df 一看,每个分区的空间都还富余的很。从 munin 的监控图表上看 Filesystem usage 也很平稳,但下面的 Inode usage 就有问题了,其中一个分区的 usage 已经到了100%。赶紧跑到服务器上 df -i 检查,果然是 Inode 耗尽。原来这个分区是用来扔各种日志和临时文件的,其中有某个程序产生的临时文件又小又多,又没有进行定时回滚,造成在磁盘空间耗尽之前文件系统的 Inode 就被用光了。
    Linux/Unix like OS 的文件系统中每个目录树中的节点并不是像 Windows 那样直接包含文件的具体信息,而只包含了文件名和 Inode number 。通过 Inode number 所找到对应于文件名的 Inode 节点中才真正记录了文件的大小/物理地址/所有者/访问权限/时间戳/被硬链接的次数等实际的 metadata 。因此你可以在 Linux 系统中通过硬链接( hard link ) 的方式给某个文件创建无数个位于不同目录下的文件名,而实际的文件数据只需要一份拷贝。
    但也正因为这种文件系统的结构,当你在 Linux 中进行 IO 操作的时候,需要的资源除了磁盘空间以外,还要有剩余的 Inode 才行。缺省情况下, Linux 在系统安装过程中按照1个 Inode 对应 2k 磁盘空间来计算每个分区的最大 Inode 数。一旦文件系统创建之后,每个分区可用 Inode 数就无法进行动态调整。
    正常来说,一般不太会出现某个分区的 Inode 耗尽而磁盘空间尚余的情况,除非像我碰到的这样垃圾小文件疯长而又没进行有效的清理。但如果确实需要的话,可以在创建文件系统(比如用 mke2fs )的时候根据实际需要来调整这个参数(比如分区如果用于存放超大视频文件的话 Inode 的数量可以少一些;如果打算存放的文件是大量小于 2k 的迷你文件的话就要考虑多创建一些 Inode)。

    附:Inode Definition by The Linux Information Project
    其它人碰到的 No space left on device 原因:
    超出系统中同时运行的最大 message queue 个数限制 : 在 root 下用 sysctl kernel.msgmni 检查该参数, sysctl -w kernel.msgmni=XXX 重新设定即可。
    cvs 异常断开的连接在 /tmp 目录下留下大量的临时文件导致 /tmp 目录满

    http://www.zeali.net/entry/480
    http://zhisheng00.iteye.com/blog/652107

  • 查看Apache并发请求数及其TCP连接状态

    Apache优化
    # prefork MPM
    # StartServers: number of server processes to start
    # MinSpareServers: minimum number of server processes which are kept spare
    # MaxSpareServers: maximum number of server processes which are kept spare
    # MaxClients: maximum number of server processes allowed to start
    # MaxRequestsPerChild: maximum number of requests a server process serves

    StartServers         10
    MinSpareServers      10
    MaxSpareServers      15
    ServerLimit          2000
    MaxClients           2000
    MaxRequestsPerChild  10000

    改为
    StartServers 150
    MinSpareServers 10
    MaxSpareServers 20
    ServerLimit  20000
    MaxClients 20000
    MaxRequestsPerChild 10000

    查看httpd进程数(即prefork模式下Apache能够处理的并发请求数):
    Linux命令:

    ps -ef | grep httpd | wc -l

    查看Apache的并发请求数及其TCP连接状态:
    Linux命令:

    netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’

    返回结果示例:
    LAST_ACK 5
    SYN_RECV 30
    ESTABLISHED 1597
    FIN_WAIT1 51
    FIN_WAIT2 504
    TIME_WAIT 1057
    其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数。

    CLOSED:无连接是活动的或正在进行
    LISTEN:服务器在等待进入呼叫
    SYN_RECV:一个连接请求已经到达,等待确认
    SYN_SENT:应用已经开始,打开一个连接
    ESTABLISHED:正常数据传输状态
    FIN_WAIT1:应用说它已经完成
    FIN_WAIT2:另一边已同意释放
    ITMED_WAIT:等待所有分组死掉
    CLOSING:两边同时尝试关闭
    TIME_WAIT:另一边已初始化一个释放
    LAST_ACK:等待所有分组死掉

  • npt时间服务器

    上海交大的 202.120.2.101
    国家授时中心 210.72.145.44
    http://www.time.ac.cn/stime.asp

  • Ubuntu之SSH登陆认证慢的解决办法

    步骤一 关闭ssh的gssapi认证 vi /etc/ssh/ssh_config注释掉如下两行

    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no
  • Ubuntu 在root登陆之后没有声音的解决方法

    Ubuntu在root用户下,为了安全考虑默认是关闭了声音系统的。
    如果要开很简单,因为root登录后pulseaudio没有启动。所以要先启动它
    将root加到pulse和pulse-access组:
    sudo usermod -a -G pulse-access root
    gpasswd -a root pulse
    gpasswd -a root pulse-access
    然后:
    编辑/etc/default/pulseaudio文件

    cp -p  /etc/default/pulseaudio  /etc/default/pulseaudio.bak

    vim /etc/default/pulseaudio
    修改以下两处
    PULSEAUDIO_SYSTEM_START=1

    DISALLOW_MODULE_LOADING=0

    改为1和0,表示允许运行在system环境,允许动态加载模块。
    重启一下计算机,声音就会出来了

    root登陆后还没声音,以前的方法都已经不行了,真正的方法如下:

    root用户登录之后运行:pulseaudio –start –log-target=syslog

    只需运行一次,以后每次启动音量调节都可以使用

    或者可以试试

    /root/.profile 文件最后加上
    pulseaudio –start –log-target=syslog

    #####################################################################

    root登陆后还没声音,又查了查,如下方法:

    12.04

    Ubuntu root登录没有声音这个问题的根本原因是使用root登录后pulseaudio没有启动。

    将root加到pulse-access组:

    sudo usermod -a -G pulse-access root

    然后修改配置文件/etc/default/pulseaudio,将PULSEAUDIO_SYSTEM_START设为1,

    12.10

    login  as root ,then :

    pulseaudio –start –log-target=syslog

     

  • Ubuntu 启用root登陆

    修改成root登录:

    1、先设定一个root的密码,sudo passwd root

    2 、备份一下lightgdm,cp -p /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf.bak

    3、 vi /etc/lightdm/lightdm.conf

    修改后为:

    [SeatDefaults]
    greeter-session=unity-greeter
    user-session=ubuntu
    greeter-show-manual-login=true

    allow-guest=false

    重启登陆即可。已经可以输入root了

     

    官网下载地址:http://www.ubuntu.com/download/desktop
    64位桌面版:http://www.ubuntu.com/ubuntu-releases/14.04/ubuntu-14.04-desktop-amd64.iso

    安装完成如需使用root身份登录,可打开终端输入以下命令:
    #设置root密码
    sudo passwd root
    #切换到root用户
    sudo -s

    想要在登录界面使用root身份登录,可编辑/etc/lightdm/目录下的lightdm.conf文件,如没有此文件,直接创建

    vi /etc/lightdm/lightdm.conf

    文件内容最终为:
    [SeatDefaults]
    #启动后以root身份自动登录
    autologin-user=root
    greeter-session=unity-greeter
    user-session=ubuntu
    #手工输入登陆系统的用户名和密码
    greeter-show-manual-login=true
    #禁用guest用户
    allow-guest=false

    修改完之后执行reboot命令重启Ubuntu生效

  • WordPress无法创建目录,后台需要FTP密码等FTP相关问题解决

    WordPress无法自动更新或在线安装主题插件
    编辑wp-config.php文件,找到代码”define(‘DB_COLLATE’, ”);”,在这段代码下输入你的FTP信息:

    define(‘FTP_USER’, ‘这里填写FTP用户名’); // FTP 或SSH用户名
    define(‘FTP_PASS’, ‘这里填写FTP密码’); // FTP用户密码
    define(‘FTP_HOST’, ‘这里填写FTP地址’); //主机名:你的SSH/FTP服务器端

    define(“FS_METHOD”, “direct”);
    define(“FS_CHMOD_DIR”, 0777);
    define(“FS_CHMOD_FILE”, 0777);
    然后保存即可(如果你想直接复制上述代码,请注意更改中英文标点)

    一定要注意:
    FTP_HOST请填写完整的ftp地址,即ftp://ftp.xxx.com

    检查wordpress所属用户组
    先用 ps -ef|grep httpd 查看当前的的apache应用运行的用户和组
    再使用 chown apache:apache -R  wordpress

    检查 wp-content/uploads 如没有 添加
    使用PHPMyAdmin进入数据库。数据库管理的高级管理可以进去。
    找到wordpress数据库,打开wp_options表
    修改表中键名为upload_path的键值 这个值是一个路径(可能在表的第二页)
    里面是空的,添加“wp-content/uploads”

    ftp设置
    useradd ftp账户 -G apache -d wordpress所在目录 -M

    /etc/vsftpd/vsftpd.conf
    anonymous_enable=NO
    anon_upload_enable=NO
    no_anon_password=YES
    anon_world_readable_only=NO
    anon_mkdir_write_enable=NO
    anon_other_write_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    file_open_mode=0755
    chroot_local_user=yes
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    ftpd_banner=Welcome to blah FTP service.
    pam_service_name=vsftpd
    userlist_enable=YES
    listen=YES
    tcp_wrappers=YES
    max_per_ip=10

  • 解决WordPress 加载fonts.googleapis.com 速度问题

    编辑以下文件 以上操作即可解决载fonts.googleapis.com 速度慢的问题

    1、wp-includes/script-loader.php
    2、wp-includes/js/tinymce/plugins/compat3x/css/dialog.css
    3、wp-content/themes/twentytwelve/functions.php(主题)
    4、wp-content/themes/twentythirteen/functions.php(主题)
    5、wp-content/themes/twentyfourteen/functions.php(主题)或者有更多的主题  ok ,修改functions.php文件,将其中 googleapis.com 全部替换为 useso.com

    以上操作即可解决载fonts.googleapis.com 速度慢的问题