作者: admin

  • 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

  • 如何在Linux下运行Firebird SuperClassic服务器?

    Firebird 2.5 创制了一种新的架构:SuperClassic 。官方发布的FB2.5 Linux发行包同时包含了SuperClassic和Classic两种架构的文件,当你安装了官方的包时,它默认激活为Classic架构服务器。
    如果想把服务器架构切换到SuperClassic, 可以通过执行 changeMultiConnectMode.sh 来实现。
    执行命令后,得到提示:“Which option would you like to choose: multi-(process|thread) [process]“
    回答thread,可以激活为SuperClassic . 如果回答 process 会激活为Classic .

    Firebird SuperClassic 下面
    ps ax |grep fire
    2054 ?        S      0:00 /opt/firebird/bin/fbguard -pidfile /var/run/firebird/default.pid -daemon -forever
    2055 ?        Sl     0:00 /opt/firebird/bin/fb_smp_server

    Firebird SuperServer下面
    ps ax |grep fire
    6862 ?        S      0:00 /opt/firebird/bin/fbguard -f
    6863 ?        Sl    27:34 /opt/firebird/bin/fbserver

  • 解决Chromium 不能以 root 身份运行

    解决Chromium 不能以 root 身份运行

    一 出现的问题

    如果你使用ubuntu操作系统,又是在root身份运行,运行chromium会出现以下的问题:

    bb8452dbb6fd52669ea9e359ab18972bd5073648

    图1.1 无法运行

    二 解决办法

    用hexedit工具打开/usr/lib/chromium-browser/目录下的chromium-browser这个二进制文件

    如果你没有这个工具,有是在ubuntu操作系统下,可以使用一下命令安装:

    sudo apt-get install hexedit

    之后就可以用了。

    命令 :hexedit /usr/lib/chromium-browser/chromium-browser

    操作:按Tab键切换至右侧ASCII模式,Ctrl+S搜索geteuid,将其改为getppid后保存退出

    注意:要把上面那个出错的对话框关闭掉(按close就可以了),否则在修改chromium-browser 时老是出现一下错误

    File is read-only!
    (press any key)

    三 测试

    c256ed18367adab4ca32c40e8bd4b31c8601e469

    图 2.1 成功运行

    四 参考资料

    说明:以上资料为网上资料和自己修改后所写,转载请说明。

    http://www.cnblogs.com/qm4050/archive/2011/10/19/2241453.html

    五 附录

    hexedit工具使用方法如下:(参考网络资料)

     

    移动(Moving), 移动到文件首部/尾部(go to start/end of the file)→下一个字符(next character)←上一个字符(previous character)↑上一行(previous line)↓下一行(next line)Home行首(beginning of line)End行尾(end of line)PageUp上一页(page forward)PageDown下一页(page backward) 

    杂项(Miscellaneous)F1 帮助(help)F2保存(save)F3载入(load file)Ctrl+X保存并退出(save and exit)Ctrl+C不保存退出(exit without save)Tab十六进制/ASCII码切换(toggle hex/ascii)Backspace撤销前一个字符(undo previous character)Ctrl+U撤销全部操作(undo all)Ctrl+S向下查找(search forward)Ctrl+R向上查找(search forward)复制/粘贴(Cut/Paste)Esc+W复制(copy)Ctrl+Y粘贴(paste)

  • 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 速度慢的问题