`

Liunx系统级别配置

阅读更多
查看是否64位

$su - root
#file /sbin/init


查看liunx版本
cat /proc/version

-----------------------------------

设置系统编码
/etc/profile

最后加上:
export LC_ALL="zh_CN.UTF-8"
export LANG="zh_CN.UTF-8"

然后 source /etc/profile

--------------卸载已经安装的jdk-------------------------
首先,在终端中输入“rpm -qa|grep gcj”,查看gcj的版本号,在这里得到的结果是:

        java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
        libgcj-4.1.2-48.el5

其次,卸载系统自带jdk。在终端中输入
“yum -y remove java java-1.4.2-gcj-compat-1.4.2.0-40jpp.115”,然后等待,等待系统卸载完自带的jdk。最终在终端中显示“Complete!”,卸载完成。


===============检测Linux服务器开放了哪些端口====================
前言:

    常常看到有些人想要知道自己的Linux主机到底开放了多少Port?要如何来检测呢。通常我们知道的Port有下面这几个:

    * ftp:21
    * telnet:23
    * smtp:25
    * http:80
    * pop-3:110
    * netbios-ssn:139
    * squid:3128
    * mysql:3306
    端口当然不只这些个,如何知道Port是否被开启呢?

检测你开启的服务有哪些?使用功能强大的 netstat 指令。
  
    在做为服务器的Linux系统中,服务项目是越少越好!这样可以减少避免不必要的入侵通道。要了解自己的系统当中的服务项目,最简便的方法就是使用nestat 了!这个命令不但简单(是每一个Linux系统都会安装的套件!),而且功能也是很不错的,例如我们在检查WWW使用者的人数时,就很需要这个命令!好了,我们来看一下netstat 的使用方法:
复制内容到剪贴板
代码:
[root@localhost ~]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             Stat                                                                                                 e
tcp        0      0 ::ffff:192.168.1.178:ssh    ::ffff:192.168.1.175:4235   ESTA                                                                                                 BLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  10     [ ]         DGRAM                    4701   /dev/log
unix  2      [ ]         DGRAM                    5846   @/var/run/hal/hotplug_s                                                                                                 ocket
unix  2      [ ]         DGRAM                    2901   @udevd
unix  3      [ ]         STREAM     CONNECTED     5845   /var/run/dbus/system_bu                                                                                                 s_socket
unix  3      [ ]         STREAM     CONNECTED     5844
unix  3      [ ]         STREAM     CONNECTED     5792   /var/run/dbus/system_bu                                                                                                 s_socket
unix  3      [ ]         STREAM     CONNECTED     5791
unix  3      [ ]         STREAM     CONNECTED     5724
unix  3      [ ]         STREAM     CONNECTED     5723
如上所示,单纯使用 netstat 的时候,仅 列出目前已经连通的服务与服务名称。所以你可以看到,由于目前仅有一个ssh连接成功,所有就只显示出一个 ESTABLISHED(连接中的意思)。 上面的 :
复制内容到剪贴板
代码:
tcp        0      0 ::ffff:192.168.1.178:ssh    ::ffff:192.168.1.175:4235
这一行表示有一个SSH的服务开放,是由远端的 192.168.1.175这个IP连接到 192.168.1.178 的。而连接的端口是4235。那如果我需要将所有的项目列出来呢?
复制内容到剪贴板
代码:
[root@localhost ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             Stat                                                                                                 e
tcp        0      0 *:32768                     *:*                         LIST                                                                                                 EN
tcp        0      0 *:sunrpc                    *:*                         LIST                                                                                                 EN
tcp        0      0 *:auth                      *:*                         LIST                                                                                                 EN
tcp        0      0 localhost.localdomain:ipp   *:*                         LIST                                                                                                 EN
tcp        0      0 localhost.localdomain:smtp  *:*                         LIST                                                                                                 EN
tcp        0      0 *:ssh                       *:*                         LIST                                                                                                 EN
tcp        0      0 ::ffff:192.168.1.178:ssh    ::ffff:192.168.1.175:1237   ESTA                                                                                                 BLISHED
udp        0      0 *:32768                 *:*
udp        0      0 *:955                   *:*
udp        0      0 *:sunrpc                *:*
udp        0      0 *:ipp                   *:*
如上所示,加入 -a(all)就可以了。将所有在机器上 (监听 Listem)或者是(已建立连接的)的服务通通列出的意思。不过,服务的名称已经使用 /etc/services 里面的名称了,而不是使用 port 的数字!目前我主机上面的服务共开放了:sunrpc、auth、ssh、ipp、smtp.等服务(就是 Listen的那几个服务)至于已经建立的服务就只有 SSH 这一个!那如果我想知道开放了哪些端口号呢?呵呵,就使用下面的命令吧!
复制内容到剪贴板
代码:
[root@localhost ~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:32768               0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:113                 0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
tcp        0     52 ::ffff:192.168.1.178:22     ::ffff:192.168.1.175:1237   ESTABLISHED
udp        0      0 0.0.0.0:32768           0.0.0.0:*
udp        0      0 0.0.0.0:955             0.0.0.0:*
udp        0      0 0.0.0.0:111             0.0.0.0:*
udp        0      0 0.0.0.0:631             0.0.0.0:*
如上所示,我接通的服务只有22这一个,而其它的你可以参照上面的命令输出结果来对照,所以你就可以知道:smtp为25端口。因此,通过使用此命令,就可以轻易的子解目前主机的运作状况与服务状态了。当然了,netstat的用途不止于此,你可以使用 man netstat 来查阅一番喔!相信对你的主机会有更大的了解。

   相信有不少的朋友都会有这个困扰,就是要怎样删除已经建立的联机呢?因为总有些不速之客会连到您的主机来进行一些破坏的工作!或者是您根本不想让对方联机过来!呵呵!还记得 鸟哥的 Linux 私房菜--基础学习篇内的资源管理 里面提到的几个常用的指令吧!?那就是找出那个联机程序的 PID ,然后给他 kill 掉就是了!简单呀!不过,大问题是『我要怎样找出联机的 PID 呀!?』呵呵!由于 PID 的管理与整体的系统资源有关,这个时候,虽然可以使用 netstat 来观察 PID ,不过只有 root 可以观察到联机状态的 PID 号码呦!( 注:还记得资源管理提及的 PID 概念吗?就是说,在 Linux 系统之内,每个『程序』系统都会给予一个号码来管理!这个就是 PID 啰!)
 
复制内容到剪贴板
代码:
[root@test root]# netstat -ap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:ssh                   *:*                     LISTEN      32149/sshd
tcp        0    284 140.116.141.19:ssh      192.168.1.11:1391       ESTABLISHED 24751/sshd
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path
unix  7      [ ]         DGRAM                    944    509/syslogd         /dev/log
unix  2      [ ]         DGRAM                    3035915 16648/xinetd
unix  2      [ ]         DGRAM                    739227 5951/pppoe
unix  2      [ ]         DGRAM                    739189 5949/pppd
unix  2      [ ]         DGRAM                    1070   628/crond
unix  2      [ ]         DGRAM                    953    514/klogd
unix  2      [ ]         STREAM     CONNECTED     690    1/init [3]
 
看到上面那个斜体字的联机建立的网络状态了吗?嘿嘿!最后面一栏就是显示那个 PID/Program name ,那个 PID ( 上面是 24751 )也就是我们要来砍掉的啦!这个时候,如果要将该联机砍掉时,就直接以 kill 来做吧!
 
复制内容到剪贴板
代码:
[root@test root]# kill -9 24751
 
这样就能将该联机给他『踢出去』您的主机啦!! ^_^""

======================================================

1. 查看内核版本命令:
  1) [root@q1test01 ~]# cat /proc/version
   Linux version 2.6.9-22.ELsmp (bhcompile@crowe.devel.redhat.com) (gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005
  2) [root@q1test01 ~]# uname -a
  Linux q1test01 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:00:54 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux
  3) [root@q1test01 ~]# uname -r
  2.6.9-22.ELsmp
2. 查看linux版本:
  1) 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如:
  # lsb_release -a
  LSB Version: :core-3.0-amd64:core-3.0-ia32:core-3.0-noarch:graphics-3.0-amd64:graphics-3.0-
  ia32:graphics-3.0-noarch
  Distributor ID: RedHatEnterpriseAS
  Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
  Release: 4
  Codename: NahantUpdate2
  注:这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。
  2) 登录到linux执行cat /etc/issue,例如如下:
  # cat /etc/issue
  Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
  Kernel \r on an \m
  3) 登录到linux执行cat /etc/redhat-release ,例如如下:
  # cat /etc/redhat-release
  Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
  注:这种方式下可以直接看到具体的版本号,比如 AS4 Update 1
  4)登录到linux执行rpm -q redhat-release ,例如如下:
   # rpm -q redhat-release
  redhat-release-4AS-3

cpu信息
cat /proc/cpuinfo


===================安装crontab===============
crontab是Linux系统下的定时运行程序,非常有用,一般系统都自带。这里系统是CentOS5.7。

如果没有的话要先安装:

yum install vixie-cron crontabs

1、crontab用法
一般格式:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]

常用选项:
-u :指定使用的用户。
-e :编辑该用户的定时任务。
-l :列出该用户的定时任务。
-r :删除该用户的定时任务。
-i :删除该用户定时任务时给予提示。
-s :附加SELinux security context string控制访问。

编辑本用户的定时任务:

crontab -e

2、crontab格式
基本格式:

*  *  *  *  *    command
分  时  日  月  周   命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

3、crontab文件举例:
10 7 * * 4 /home/test.sh
每周4的7:10执行/home/test.sh脚本。

0 23 1 * * /etc/init.d/httpd restart
每月1日23:00重启apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18:00至23:00之间每隔30分钟重启lighttpd。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启lighttpd。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4:45重启lighttpd。

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启lighttpd。

4、加入开机自动启动:

chkconfig --level 345 crond on

5、
用户执行crontab -e的内容是写在/var/spool/cron/目录内。

6、在/etc下有:
cron.daily
cron.hourly
cron.monthly
cron.weekly
这四个目录,预设了每小时、每天、每周以及每个月的定时任务。可以把要执行的命令写在脚本里仍到相应的目录中。

7、/etc/crontab配置文件:
1)可以直接把定时任务写在该文件内,格式为:

分  时  日  月  周  用户名  命令
例如:
30 2 * * * root /etc/init.d/httpd restart
PS:crontab内的命令要写绝对路径。

2)MAILTO=root是用于crontab执行后发邮件到root的邮箱,路径是/var/spool/mail。
可以把MAILTO后的值改成自己的邮箱。

8、/etc/cron.allow和/etc/cron.deny文件用于限制使用crontab的用户。

9、VPS上执行crontab -e时出错:

/bin/sh: /bin/vi: No such file or directory
crontab: "/bin/vi" exited with status 127

是因为默认编辑器没有设置:

vim /etc/profile

在最后加入:

EDITOR='vim'
export EDITOR

10、crontab日志文件路径:
/var/log/cron

11、crontab设置好后要重启crond服务,使设置生效:

service crond restart

参考资料:
http://www.live-in.org/archives/1028.html
http://kangxiaowei.com/archives/8247.html


============我增加nginx 日志按天分开===============

[root@uhz001691 03]# more /usr/local/nginx/sbin/log_by_day.sh

#!/bin/bash
# 请将当前脚本的运行时间设置成 00:00
# 这里是日志保存路径
logs_path="/data/nginx/logs/"
#分割日志
mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}error.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/error_$(date -d "yesterday" +"%Y%m%d").log
#重启nginx
/usr/local/nginx/sbin/nginx -s reload

-----------------
conf/     conf.zip 
[root@uhz001691 03]# more /usr/local/nginx/conf/nginx.conf


#user              nginx;
user               nobody nobody;
worker_processes  1;


error_log  /data/nginx/logs/error.log;
#error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /usr/local/nginx/conf/mime.types;
    default_type  application/octet-stream;
    include       /usr/local/nginx/conf/config/proxy.conf;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

   
    ##access_log  /var/log/nginx/access.log  main;
    access_log  /data/nginx/logs/access.log  main;


-------------加入任务---------------
crontab -e
输入
00 00 * * * /bin/bash /usr/local/nginx/sbin/cut_nginx_log.sh

执行
/sbin/service crond restart
分享到:
评论

相关推荐

    系统级别 内核 LINUX内核 微系统

    【系统级别内核 LINUX内核 微系统】深入解析 Linux内核是开源且免费的操作系统核心,由林纳斯·托瓦兹于1991年首次发布。它遵循POSIX标准,允许跨平台的兼容性和互操作性。随着时间的推移,Linux内核经历了多次重大...

    linux的Qt设置系统时间

    总结,通过Qt 4.8.5,我们可以利用`QDateTime`和`QProcess`类来获取和设置Linux系统的日期和时间,以及管理时区。在进行这些操作时,理解Linux的命令行工具和权限管理是非常重要的。同时,要确保代码的安全性和用户...

    Java设置linux系统时间

    利用Java代码设置Linux系统时间。设置时间精确到毫秒级别。

    LINUX系统的硬件配置方法.pdf

    本文将深入探讨Linux系统如何进行硬件配置,包括硬盘分区、硬件设备的命名规则以及配额管理。 首先,Linux将硬盘视为一个文件系统,允许用户自定义硬盘的配置。硬盘分区是Linux系统安装的重要步骤。Linux支持MBR...

    LINUX系统的运行级别RUNLEVEL

    在传统的Linux系统中,初始化进程会读取`/etc/inittab`文件中的配置来确定系统的默认运行级别。 - **查看当前运行级别**:可以通过命令`runlevel`来查看当前系统处于哪个运行级别。 - **切换运行级别**:使用命令`...

    Linux系统管理 北大青鸟PPT

    8. **网络配置**:Linux系统管理也包括网络配置,如IP地址、子网掩码、网关的设置,DNS解析,以及网络服务(如HTTP、FTP)的配置和管理。 9. **日志管理和故障排查**:日志文件是诊断系统问题的重要工具。PPT会介绍...

    linux系统程序设计

    Linux系统程序设计是计算机科学与技术中的一项重要技能,尤其在开源领域具有极高的实用价值和广泛应用。海同的内部培训教材系统性地介绍了Linux系统编程的各个重要方面,旨在帮助初学者和有一定基础的开发者能够理解...

    linux系统服务器配置与管理

    Linux系统服务器配置与管理是一项涉及安装、设置、维护Linux操作系统和其中的服务器软件,以便为用户提供网络服务的基础技能。服务器配置包括操作系统的安装、内核参数的调整、文件系统的格式化与挂载、网络服务的...

    浅谈Linux系统安全及应用.pdf

    Linux系统安全设置是Linux系统安全中的一方面。管理员可以通过设置BIOS、加密文件系统、防火墙等方式来提高Linux系统的安全性。BIOS是为计算机提供最低层、最直接的硬件设置和控制。为防范不法用户或黑客通过改变...

    Linux系统中的常用配置文件

    在Linux系统中,`/etc/inittab` 和 `/boot/grub/grub.conf` 是两个至关重要的配置文件,它们分别负责初始化进程的运行级别设置和引导加载器的配置。 1. **/etc/inittab** - **格式**:`id:run-levels:action:...

    Linux系统下设置用户登录环境

    在Linux系统中,用户登录环境的配置是通过一系列的配置文件来实现的,这些文件定义了用户登录后的软件环境,包括命令别名、环境变量、键盘设置等。下面将详细介绍这些重要的Shell环境配置文件及其作用。 1. **/etc/...

    linux系统级别的能够打开的文件句柄的数file-max命令.docx

    Linux 系统中,file-max 命令用于设置系统级别的能够打开的文件句柄的数量,这个值决定了 Linux 内核可以分配的文件句柄的最大数量。当系统中的文件句柄数量达到这个值时,系统将不能再打开新的文件句柄,从而导致...

    Linux系统开发的基本任务

    root用户是Linux系统中的超级用户,拥有最高级别的权限,可以执行任何系统级别的操作,包括安装软件、配置系统等。然而,由于其权限过大,日常使用应避免以root身份登录,以免误操作导致系统损坏。 在Linux系统中,...

    安装与基本配置linux操作系统

    linux安装的基本知识,1 认识linux的操作系统 2 理解linux体系结构 3 认识linux的版本 认识linux的启动过程和运行级别 5 linux的登录与退出

    《Practical Linux Security Cookbook 》 《linux系统安全》

    ### 知识点一:Linux系统安全概述 在《Practical Linux Security Cookbook》这本书中,作者Tajinder Kalsi深入探讨了Linux系统的安全性问题。Linux作为一种广泛使用的开源操作系统,在服务器、嵌入式设备以及桌面...

    linux系统曙光服务器安装手册

    - **RAID配置**:通过特定按键(如Ctrl+H)进入RAID配置界面,选择适配器并进行RAID级别设置。 - **操作系统安装**:完成RAID配置后,启动Linux安装介质,按照提示完成操作系统的基本安装。 #### 1.5 配置安全策略 ...

    Linux系统中串口的配置教程

    【Linux系统中串口的配置教程】 在Linux操作系统中,串口通信是一种基本的设备交互方式,常用于调试、远程访问或在没有图形界面的情况下提供控制台访问。本教程将详细讲解如何配置Linux中的串口控制台以及使用...

    linux 系统裁减指南

    在IT领域,Linux系统因其开源、稳定和可定制性而被广泛应用。然而,在特定场景下,如嵌入式设备或资源有限的环境,可能需要对Linux系统进行裁减以适应硬件限制,提高运行效率。本篇文章将深入探讨Linux系统裁减的...

    快速成Linux系统管理员教程

    从给定的文件信息中,我们可以提炼出一系列与Linux系统管理相关的知识点,这些知识点涵盖了Linux系统的基本架构、关键组件以及管理技巧。以下是基于文件信息详细展开的知识点: ### Linux系统概述 - **操作系统的...

Global site tag (gtag.js) - Google Analytics