0
点赞
收藏
分享

微信扫一扫

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 的使用方法:
复制内容到剪贴板
代码:

# 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。那如果我需要将所有的项目列出来呢?
复制内容到剪贴板
代码:

# 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 这一个!那如果我想知道开放了哪些端口号呢?呵呵,就使用下面的命令吧!
复制内容到剪贴板
代码:

# 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 啰!)
 
复制内容到剪贴板
代码:

# 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 来做吧!
 
复制内容到剪贴板
代码:
# kill -9 24751
 
这样就能将该联机给他『踢出去』您的主机啦!! ^_^""

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

1. 查看内核版本命令:
  1) # 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) # 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) # 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




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

# 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 

# more /usr/local/nginx/conf/nginx.conf 



#user nginx; 

user nobody nobody; 

worker_processes 1; 



[color=red] error_log /data/nginx/logs/error.log;[/color] 

#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; 

[color=red] access_log /data/nginx/logs/access.log main;[/color]



-------------加入任务---------------

crontab -e 

输入 

00 00 * * * /bin/bash /usr/local/nginx/sbin/cut_nginx_log.sh 


执行 

/sbin/service crond restart

举报

相关推荐

0 条评论