常识
执行文件路径的变量
echo $PATH
加入路径 到 path
PATH=”$PATH”:/root
不要把当前目录加入 path ,如果在 tmp 下有一个病毒伪装成 ls ,你在 tmp 下执行,就会中标
根目录,建议此目录下只有目录,不要直接有文件,所有与启动相关的文件都应放在此分区中, /etc 、 /bin 、 /dev 、 /lib 、 /sbin 这 5 个子目录应该和根目录连在一起
启动时会用到的文件, vmlinuz 是 linux 的核心
任何设备都以文件类型存放在这个目录下
系统默认的用户目录
管理员的家目录
光盘、 usb 默认载入点
系统管理员才会执行的命令
系统的主要配置文件目录
本机自行安装程序默认目录
/etc/passwd 注:用户( user )的配置文件;
/etc/shadow 注:用户( user )影子口令文件;
/etc/group 注:用户组( group )配置文件;
/etc/gshadow 注:用户组( group )的影子文件;
drwxr--r-- 3 root root 4096
这是一个目录,但是非 root 账号不能进入此目录,如果在该目录下不能执行任何命令,自然也无法进入了,所以,如果相对他人开发某个目录的话,请记住开发目录的 x 属性
/var/log/messages
messages 日志是核心系统日志文件。它包含了系统启动时的引导消息,以及系统运行时的其他状态消息。 IO 错误、网络错误和其他系统错误都会记录到这个文件中。其他信息,比如某个人的身份切换为 root ,也在这里列出。如果服务正在运行,比如 DHCP 服务器,您可以在 messages 文件中观察它的活动。通常, /var/log/messages 是您在做故障诊断时首先要查看的文件。
/var/log 目录下有一些文件以一个数字结尾,这些是已轮循的归档文件。日志文件会变得特别大,特别笨重。 Linux 提供了一个命令来轮循这些日志,以使您的当前日志信息不会淹没在旧的无关信息之中。 logrotate 通常是定时自动运行的,但是也可以手工运行。当执行后, logrotate 将取得当前版本的日志文件,然后在这个文件名最后附加一个“ .1 ”。其他更早轮循的文件为“ .2 ”、“ .3 ”,依次类推。文件名后的数字越大,日志就越老。
linux 自动启动服务很简单 , 最简单的是把启动命令放到 /etc/rc.d/rc.local 文件里这样就可以每次启动的时候自动启动服务了 , 例如对于 apache, 编译好 apache 后会在安装目录的 bin 下生成 apachectl 文件 , 这是个启动教本 , 我们只需要把这个命令加到 rc.local 里就可以了
echo /usr/local/apache/bin/apachectl >> /etc/rc.d/rc.local
MBR : master boot recorder 主引导记录,里面记录着引导程序和磁盘分区表
一个硬盘最多有 4 个(主 + 扩展)分区,其中扩展分区只能有一个。
所以一般分区可以采用以下分区模式:
P+P+P+P 或者 P+P+P+E 或者 P+E
扩展分区不能直接使用,要划分成逻辑分区才行。如果分区要超过 4 个,必要使用扩展分区,且在扩展分区里划分逻辑分区才行。
其中 /dev/hda1-/dev/had4 被预留了。
比如我想划分 5 个分区,一个主分区,一个扩展分区。那么磁盘分区编号为:
/dev/hda1 /dev/hda5 /dev/hda6 /dev/hda7 /dev/hda8
/dev/hda2 为扩展分区,它本身仅是用来规划用的,实际上不存在这个设备。
xinetd 取代了 inetd ,并且提供了访问控制、加强的日志和资源管理功能。
在 linux 中一些不长期使用的服务没有被作为单独的守护进程在开机时启用, linux 把这些服务监听端口全部由一个独立的进程 xinetd 集中监听,当收到相应的客户端请求之后, xinetd 进程就临时启动相应服务并把相应端口移交给相应服务,客户端断开之后,相应的服务进程结束, xinetd 继续监听。要开 telnet 服务器,只需配置 xinetd 即可。 Xinetd 本身是 standalone 方式运行的
chkconfig –list
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
standalone 一次性启动,运行期间一直驻留在内存中,优点是对接入信号反应快,缺点是损耗了一定的系统资源,因此经常应用于对实时反应要求较高的专业 FTP 服务器。
以 xinetd 模式运行的服务表示该服务进程并不以守护进程执行 , 以 FTPD 进程为例吧 , 以 xinetd 模式运行这个服务 , 情况是这样的 , 本身 FTP 服务 是会监听 21 号端口的 , 但是以这种模式运行这个服务的话 ,21 号端口则由 xinetd 进程来监听(此时 FTPD 服务并没有运行) , 如果你的网卡接收到有 21 号端口请求 , 则有 xinetd 进程会去调用 FTPD 程序 , 将在 21 号端口接收到的请求数据移交给 FTPD 进程去处理,处理完后 FTPD 进程退出,而 xinetd 进程继续监听 21 号端口 , 这有点类似 windows 的 svhost 进程 ; 而以 standalone 模式运行的服务则是服务进程 , 如 ftpd 以守护进程在内存中运行 , 接收到 21 号端口的请求后由 FTPD 进程 fork 出一个子进程进行 处理,而原进程继续监听 21 号端口。
chkconfig –list # 查看所有服务
找到如下:
vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
xinetd based services:
vsftpd: on
standalone 运行模式下的 vsftpd 没有开启,使用 xinetd 模式开启的 vsftpd 服务
cd /etc/xinted.conf
文件定义如下
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 50 10
}
includedir /etc/xinetd.d
cd /etc/xinted.d
cat vsftpd
看到如下内容:
service vsftpd
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
log_on_failure += USERID
log_on_success +=DURATION USERID
nice =10
disable = no
}
disable=no 表名已启动此服务。
ps -aux |grep vsftpd
1. 启动 standalone 服务的方式:以 syslog 为例:
[root@linux ~]# /etc/init.d/syslog start
2. 启动 super daemon(xinted) 服务的方式:以 telnet 为例:
[root@linux ~]# vi /etc/xinetd.d/telnet ( 设定方式参考下节 )
[root@linux ~]# /etc/init.d/xinetd restart
另外,除了这样的启动方式之外,我们还可以透过 Fedora ( Red Hat 系统 ) 所提供的 service 这个程式来进行 daemon 的启动喔!其实 service 仅是一支 script 啦, 他可以解析后面带有的参数,然后去到 /etc/init.d/ 去启动相对应的服务名称的 script 而已! 有兴趣的话,可以自行去解析 /sbin/service 这支 shell script 啊! 底下我们大略说明一下他的用法!
[root@linux ~]# service [service name] (start|stop|restart|...)
参数:
service name :亦即是需要启动的服务名称,需与 /etc/init.d/ 对应;
start|... :亦即是该服务要进行的工作。
范例:
范例一:重新启动 crond 这支 daemon :
[root@linux ~]# service crond restart
[root@linux ~]# /etc/init.d/crond restart
在上面的范例当中,其实启动方式以 service 这个程式,或者直接去到 /etc/init.d/ 底下启动, 都一样啦!自行去解析 /sbin/service 就知道为啥了! ^_^
Tips:
事实上,在 Linux 系统中,要‘开或关某个 port ’,就是需要‘ 启动或关闭某个服务’啦!因此,你可以找出某个 port 对应的服务,程式对应的服务, 进而启动或关闭他,那么那个经由该服务而启动的 port ,自然就会关掉了!
cat /dev/null > catalina.out# 清空文件
/etc/sysconfig/i18n |
语系数据 |
/etc/profile |
设置总体的 PATH 等信息,这个文件也规划出 /etc/profile.d 和 /etc/inputrc |
/etc/bashrc |
确定 unmask 的功能,和提示符的内容 |
/etc/profile.d/*.sh |
针对颜色、语系、 vim 及 which 等命令进行附加配置 |
/etc/man.config |
Man 的系统变量位置 |
~/.bash_profile 、 ~/.bash_login 、 ~/.profile |
这三个文件只要一个即可,一般是第一个存在。只在登陆时才读取 |
~/.bashrc |
一般将自己的需要设置到这里,每次执行 shell 脚本的时候,都会重新读取这个文件 |
~/.bash_history |
每次登陆 bash , bash 会先读这个文件,将所有的历史命令读入内存 |
~/.bash_logout |
离开 linux 时,执行一些操作 |
先读取系统设置值,然后读取 ~/.bash_* ,然后读取 ~/.bashrc 。所以登陆 bash 后,最终读取的配置文件是 ~/.bashrc, 在这此文件中的设置会是最终的设置值,可以把一些常用 alias 或 PATH 放入此文件。
source 和 . 都能将配置文件的内容读进当前 shell 环境中
source /etc/bashrc
. /etc/bashrc
设置别名 alias ll ='ls -l'
Unalias 删除别名
这是针对本次登录,如果想长期生效,需修改 ~/.bashrc, 登陆后初始化 alias( 跟用户有关,在 root 用户登录时,修改此文件,则只有 root 用户登录时才生效
八进制数字 权限
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx
我们可以根据上面的数字列表来组合权限,比如我想让属主拥有 rwx (所对应的数字是 7 ),属组拥有 --x (所对应的数字是 1) ,其它用户拥有 ---( 所对应的数字是 0) ,这样我们把各组的权限组合起来就是是 rwx--x--- (对应的数字是 710) 。
chmod 710 sun.txt
和八进制方法一样,如果我们为一个目录及其下的子目录和文件具有相同的属性,就可以用 -R 参数;
u 代表属主
g 代表属组
o 代表其它用户
a 代表属主、属组和其它用户,也就是上面三个用户(或组)的所有;
权限定义字母:
r 代表读权限;
w 代表写权限;
x 代表执行权限;
权限增减字符;
- 代表减去相关权限;
+ 代表增加相关权限;
示例一:
[root@localhost ~]# ls -l linuxsir007.txt
-rwxr-xr-x 1 root root 0 04-23 20:11 linuxsir007.txt
[root@localhost ~]# chmod ugo-x linuxsir007.txt 注:把属主、用户组及其它用户的执行权限都减掉;
[root@localhost ~]# ls -l linuxsir007.txt
-rw-r--r-- 1 root root 0 04-23 20:11 linuxsir007.txt
检查,设置系统的各种服务
linux os 将操作环境分为以下 7 个等级 :
0: 开机 ( 请不要切换到此等级 )
1: 单人使用者模式的文字界面
2: 多人使用者模式的文字界面 , 不具有网络档案系统 (NFS) 功能
3: 多人使用者模式的文字界面 , 具有网络档案系统 (NFS) 功能
4: 某些发行版的 linux 使用此等级进入 x windows system
5: 某些发行版的 linux 使用此等级进入 x windows system
6: 重新启动
参数 :
--add 新增所指定的系统服务
--del 删除所指定的系统服务
--level 指定该系统服务要在哪个执行等级中开启或关闭
--list 列出当前可从 chkconfig 指令管理的所有系统服务和等级代号
on/off/reset 在指定的执行登记 , 开启 / 关闭 / 重置该系统服务
例子
1. 查看在各种不同的执行等级中 , 各项服务的状况 :
$chkconfig --list
2. 列出系统服务 vsftpd 在各个执行等级的启动情况:
$chkconfig --list vsftpd
3. 在执行等级 3,5 时,关闭 vsftpd 系统服务:
$chkconfig --level 35 vsftpd off
4. 在执行等级 2 , 3 , 5 时,开启 vsftpd 系统服务:
$chkconfig --level 235 vsftpd on
5. 关闭一些自己不需要的服务 ->
如果没有打印机:
chkconfig --level 235 cups off
如果没有局域网:
chkconfig --level 235 smb off
如果不需要远程用户登录的:
chkconfig --level 235 sshd off
如果不需要定时任务的:
chkconfig --level 235 crond off
如果不需要添加新硬件的:
chkconfig --level 235 kudzu off
由 xinetd 管理的服务会立即被 chkconfig 影响。譬如,如果 xinetd 在运行, finger 被禁用,那么执行了 chkconfig finger on 命令后, finger 就不必手工地重新启动 xinetd 来立即被启用。对其它服务的改变在使用 chkconfig 之后不会立即生效。你必须使用 service daemon stop 命令来停止个别服务。在前面的例子中,把 daemon 换成你想停止的服务名称,如 httpd 。 把 stop 换成 start 或 restart 来启动或重新启动该服务。
当我们要改变一个文件的属组,我们所使用的用户必须是该文件的属主而且同时是目标属组成员,或超级用户。只有超级用户的才能改变文件的属主。
举例:将 example.txt 文件的属主改为 linuxsirorg 用户;
[root@localhost ~]# ls -l example.txt
-rw-r--r-- 1 root root 0 04-24 22:37 example.txt
[root@localhost ~]# ls -l example.txt
-rw-r--r-- 1 linuxsirorg root 0 04-24 22:37 example.txt
[root@localhost ~]# chown beinan:root example.txt
[root@localhost ~]# ls -l example.txt
-rw-r--r-- 1 beinan root 0 04-24 22:37 example.txt
chown 也提供了 -R 参数,这个参数对目录改变属主和属组极为有用,我们可以通过加 -R 参数来改变某个目录下的所有文件到新的属主或属组;
fdisk –l 参看磁盘使用情况
通过 file 指令,我们得以辨识该文件的类型。
[root@qb ~]# file install.log
install.log: UTF-8 Unicode text
find pathname -options [-print -exec -ok ...]
pathname: find 命令所查找的目录路径。例如用. 来表示当前目录,用/ 来表示系统根目录。
-print : find 命令将匹配的文件输出到标准输出。
-exec : find 命令对匹配的文件执行该参数所给出的shell 命令。相应命令的形式为'command' {} \; ,注意{} 和\ ;之间的空格。
-ok : 和-exec 的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell 命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
-name
按照文件名查找文件。
-perm
按照文件权限来查找文件。
-prune
使用这一选项可以使find 命令不在当前指定的目录中查找,如果同时使用-depth 选项,那么-prune 将被find 命令忽略。
-user
按照文件属主来查找文件。
-group
按照文件所属的组来查找文件。
-mtime -n +n
按照文件的更改时间来查找文件, - n 表示文件更改时间距现在n 天以内,+ n 表示文件更改时间距现在n 天以前。find 命令还有-atime 和-ctime 选项,但它们都和-m time 选项。
-nogroup
查找无有效所属组的文件,即该文件所属的组在/etc/groups 中不存在。
-nouser
查找无有效属主的文件,即该文件的属主在/etc/passwd 中不存在。
-newer file1 ! file2
查找更改时间比文件file1 新但比文件file2 旧的文件。
-type
查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n :[c] 查找文件长度为n 块的文件,带有c 时表示文件长度以字节计。
-depth :在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype :查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab 中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount :在查找文件时不跨越文件系统mount 点。
-follow :如果find 命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio :对匹配的文件使用cpio 命令,将这些文件备份到磁带设备中。
另外 , 下面三个的区别 :
-amin n
查找系统中最后N 分钟访问的文件
-atime n
查找系统中最后n*24 小时访问的文件
-cmin n
查找系统中最后N 分钟被改变文件状态的文件
-ctime n
查找系统中最后n*24 小时被改变文件状态的文件
-mmin n
查找系统中最后N 分钟被改变文件数据的文件
-mtime n
查找系统中最后n*24 小时被改变文件数据的文件
-exec 参数后面跟的是 command 命令,注意点如下:
command 命令的终止,使用 ';' ( 分号)来判定,在后面必须有一个 ';'
'{}' ,使用{} 来表示文件名,也就是find 前面处理过程中过滤出来的文件,用于command 命令进行处理
特别强调,对于不同的系统,直接使用分号可能会有不同的意义, 使用转义符 '\' 在分号前明确说明
find /usr/local/tomcat/webapps -name '*.jsp' -exec grep 203 {} \;
find /usr/local/tomcat/webapps -name '*.jsp' -print |xargs grep 203
find / -type f -size 0 -exec ls -l {} \;
find . -type d | sort
find . -type f -print | xargs file
在 windows 上先切换目录
ftp cqzhende.gicp.net
ls 列出所有文件
bye 退出
put 传文件
get 获取文件
lcd 切换本地路径
lpwd 显示本地路劲
显示用户的 ID ,以及所属群组的 ID
Less 是另一个文本阅读器,不过它还允许在文件中滚动浏览以及检索信息。
less /var/log/messages
上面的命令将显示 /var/log/messages 文件的内容。使用“ q ”来停止查看文件。使用“ h ”来获得 less 的使用帮助。
硬链接 只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为 inode )。当 您移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。 硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。如果您删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。
符号链接 是一个指针,指向文件在文件系统中的位置。符号链接可以跨文件系统,甚至可以指向远程文件系统中的文件。符号链接只是指明了原始文件的位置, 用户需要对原始文件的位置有访问权限才可以使用链接。如果原始文件被删除,所有指向它的符号链接也就都被破坏了。它们会指向文件系统中并不存在的一个位 置。
# Create a hard link from MyFile in the current
# directory to /YourDir/MyFile
ln MyFile /YourDir
# Create a symbolic (soft) link from MyFile in
# the current directory to /YourDir/YourFile
ln -s MyFile /YourDir/Yourfile
ln –s /var/log/messages ~/messages
为 linux 系统日志创建符号链接,链接到用户目录下的 messages
该命令在运行时需要后台索引的数据库作为支撑,在 Ubuntu 中这个数据库文件位于 /var/cache/locate/locatedb 。一般来说,这个数据库文件每天是通过 cron 自动更新的。如果不幸没有得到更新,那么可以执行 sudo updatedb 来手动更新。
ls –l
2408949 -rwxr-xr-x 1 root root 7 04-21 12:47 lsfile.sh
第一字段:inode
第二字段:文件种类和权限;
第三字段: 硬链接个数;
第四字段: 属主;
第五字段:所归属的组;
第六字段:文件或目录的大小;
第七字段和第八字段:最后访问或修改时间;
第九字段:文件名或目录名
第一个- 代表是普通文件,若是d 代表目录
每个文件或目录都有一组 9 个权限位,每三位被分为一组,他们分别是属主权限位(占三个位置 )、用户组权限位(占三个位置)、其它用户权限位(占三个位置)。比如 rwxr-xr-x ,我们数一下就知道是不是 9 个位置了,正是这 9 个权限位来控制文件属主、用户组以及其它用户的权限。
利用 netstat 指令可让你得知整个 Linux 系统的网络情况
netstat –s 显示统计信息
netstat –a 显示所有连接信息
ps –aux |grep XXX
redhat package manager
rpm -q webmin
查询是否安装 webmin
套件安装
rpm -ivh 包名
i: 使用 rpm 的安装模式
v: 在安装过程中提供更多信息
h: 在安装过程中印出 # 号
套件删除
rpm -e 包名
套件升级
rpm -Uvh 包名
su - clsung 变更帐号为 clsung 并改变工作目录至 clsung 的家目录
su clsung 变更帐号为 clsung
tail -f /var/log/messages
linux 下的图形管理工具
上面的命令将显示 /var/log/messages 文件的最后 10 行,然后继续监控那个文件,并输出新的行为。要停止 tail -f 命令,使用 Ctrl + C 来中止进程。
tar –cf lib.tar lib
把 lib 目录打包成 lib.tar
top –n 1
显示一次
侦测一个进程所需要的时间加上其他处理的时间的总和。不要和上面提到的date 命令混淆。比如,我可以使用命令“time ls ”来判断显示一个目录需要多长时间;或者我可以使用命令“time sleep 10 ”来测试time 命令(睡眠10 秒钟,什么也不做)。
显示数据包到主机间的路径
traceroute 指令让你追踪网络数据包的 路由 途径,预设数据包大小是 40Bytes ,用户可另行设置。
现在的时间
系统开机运转到现在经过的时间
连线的使用者数量
最近一分钟,五分钟和十五分钟的系统负载
在命令模式下
:q! 退出不保存
:wq 推出并保存
/ searchword 搜索, n 下一个
dd 删除一行
v 开始标记文本。然后,移动光标
y 复制被标记的文本
x 剪切被标记的文本
p 粘贴被剪切或复制的文本
在每个用户的主目录下,都有一个 vi 的配置文件 ".vimrc" (如果没有的话,可以手动创建)。用户可以编辑它,使对其的设置在每次启动 vi 时都成为有效的参数。如以下几个:
set nu ---- 显示行号
set nonu ---- 不显示行号
set ic ---- 查找时不考虑大小写
set noic ---- 查找时考虑大小写
set smartindent ---- 自动缩进
w 命令也用于显示登录到系统的用户情况,但是与 who 不同的是, w 命令功能更加强大,它不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作,感觉比较实用
whereis 是来寻找命令的二进制文件,同时也会找到其帮助文件;
比如我们不知道 fdisk 工具放在哪里,我们就可以用 whereis fdisk 来查找;
[root@localhost ~]# whereis fdisk
fdisk: /sbin/fdisk /usr/share/man/man8/fdisk.8.gz
[root@qb ~]# whereis grep
grep: /bin/grep /usr/share/man/man1/grep.1.gz /usr/share/man/man1p/grep.1p.gz
显示系统中有那些使用者正在上面,显示的资料包含了使用者 ID ,使用的终端机,从那边连上来的,上线时间,呆滞时间, CPU 使用量,动作等等。
whois 指令会去查找并显示指定帐号的用户相关信息,因为它是到 Network Solutions 的 WHOIS 数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。
1. 使用YUM 查找软件包
命令: yum search <keyword>
hwclock --systohc
date;hwclock;hwclock -s;date
updatedb
locate –r ‘.*properties2.*’|grep tomcat|xargs rm
mv -v 1.1.txt test || echo failure >>2.txt
当复制 1.1.txt 到 test 文件夹失败时写入 failure 到 2.txt
安装 telnet
rpm –ivh telnet-server-0.17-39.el5.i386.rpm
vi /etc/xinetd.d/telnet# 启动
service xinetd restart
客户端访问时,不能使用 root 用户
vi /etc/inittab , 修改id:5:initdefault: 为id:3:initdefault: ,reboot 就ok 了
top -n 1 |grep Cpu >cpu.log
cat /proc/cpuinfo
vi /etc/ssh/sshd_config, 修改以下内容
protocol 2
permitRootLogin yes # 启用ssh root 登陆
PasswordAuthentication yes # 设置是否允许口令验证
PermitEmptyPasswords no # 设置是否允许用口令为空的帐号登录。
如果想做到最大化安全链接,可以考虑在配置有双网卡的服务器上设置只允许内网链接SSH ,方法很简单,在/etc/hosts.deny 文件最后一行添加 一句sshd: ALL 然后在/etc/hosts.allow 的最后一行加上一句sshd: 192.168.10. 然后保存退出。
service sshd restart
输入 ntsysv
下面我列出仅需要的服务,没有的全部干掉!
这里简单说一下,选定和取消选定用空格,tab 转换!
Atd 、 Crond 、 Irqbalance 、 microcode_ctl 、 network 、 sendmail 、 sshd
使用 dmesg 命令可以快速查看最后一次系统引导的引导日志。通常它的内容会很多,所以您往往会希望将其通过管道传输到一个阅读器。
dmesg | more
上面的命令将以分页的方式显示引导信息。
VMware 设置为vmnet(nat)( 相当于不同的网段连接) ,虚拟机里的linux 设置为动态获取ip(dhcp) 即可
Dynamic Host Configuration Protocol( 动态主机分配协议)
此时主机的虚拟网卡充当路由器的角色
#cd /etc/yum.repos.d/
#cp -a CentOS-Base.repo CentOS-Base.repo.bak
#vim CentOS-Base.repo
代码:
# CentOS-Base.repo
#
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
yum 速度很快!大家可以试试。
locate -r '.*hibernate.cfg.xml$' |xargs cat |grep connection.url
vi /usr/local/tomcat/conf/server.xml
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
compression="on" compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml" />
加上后面几句红色的
重启 tomcat
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
vi /usr/local/ tomcat /conf/server.xml
启用以下内容,日志在 logs 目录
<Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="combined" resolveHosts="false"/>
启动vncserver 服务
[root@zdtech init.d]# /etc/init.d/vncserver restart
运行vncserver ,如果第一次配置VNC Server, 会要求提供登录VNC 使用的密码. 以后也可以使用vncpasswd 来修改密码.
[root@zdtech init.d]# vncserver
New 'zdtech:2 (root)' desktop is zdtech:2
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/zdtech:2.log
在Windows 使用VNC viewer 登录了
输入服务器地址:192.168.10.22:2 就可以登陆了,但是现在还不是进入的桌面系统修改配置文件/root/.vnc/xstartup, 使之与下面内容相同
[root@zdtech init.d]# vi /root/.vnc/xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &
修改后再次运行vncserver 命令
[linuxzgf@linuxzgf ~]$ vncserver
New 'localhost.localdomain:1 (test)' desktop is localhost.localdomain:2
Starting applications specified in /home/test/.vnc/xstartup
Log file is /home/test/.vnc/localhost.localdomain:2.log
如果要杀掉vncserver 进程, 可执行vncserver :1 kill ,1 表示display 的ID 号
Awstats 是一个非常方便的web 统计访问工具,它分析apache 或者tomcat 产生的日志,得出访问统计信息。
wget http://prdownloads .sourceforge.net/awstats/awstats-6.9-1.noarch.rpm
rpm -ivh awstats-6.9-1.noarch.rpm
cd /usr/local/awstats/tools
在执行perl awstats_configure.pl 的过程中会出现一个错误,
Error: Failed to open '/usr/share/doc/awstats/examples/wwwroot/cgi-bin/awstats.model.conf' for read.
可以再执行命令前把awstats.model.conf 文件,在安装包中找出此文件并复制到/etc/awstats 目录下
perl awstats_configure.pl # 开始配置
-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y
-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> cqmc
-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
>
-----> Create config file '/etc/awstats/awstats.cqmc.conf'
Config file /etc/awstats/awstats.cqmc.conf created.
-----> Add update process inside a scheduler# 添加一个定时任务,比如每日更新日志
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=cqmc
Or if you have several config files and prefer having only one command:
/usr/local/awstats/tools/awstats_updateall.pl now
Press ENTER to continue...
A SIMPLE config file has been created: /etc/awstats/awstats.cqmc.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'cqmc' with command:
> perl awstats.pl -update -config=cqmc
You can also read your statistics for 'cqmc' with URL:
> http://localhost/awstats/awstats.pl?config=cqmc
Press ENTER to finish...
执行完毕。
查看新日志是否生效
cd /usr/local/apache/
rm –rf logs/access_log# 删除访问日志,以前的日志不符合awstats 分析日志要求
cd bin
./ apachectl -k restart# 重启apache
more ../logs/access_log# 查看新日志是否生效,可以自己用浏览器访问看看
vi /etc/awstats/ awstats.cqmc.conf
- LogFile 指定 web server 紀錄檔存放的位置。 /usr/local/apache/logs/access_log
- LogFormat 檢查參數值是否為 "1" 。
- DNSLookup 將參數值設定為 “1” 。
- DirData 指定存放統計資料的位置。 /usr/local/apache/logs
- DirCgi 指定 CGI 程式所在的位置。 /usr/local/apache/cgi-bin
- DirIcons 指定小圖示所在的位置。
/usr/local/apache/icons
- SiteDomain 網站主機名稱。 cqmc
-HostAliases 设定主机别名
cd /usr/local/awstats/wwwroot/cgi-bin
perl awstats.pl -update -config=cqmc
http://localhost/awstats/awstats.pl?config=cqmc
vi /etc/crontab
# 加入如下代码
00 2 * * * root /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=cqmc
# 每天 2 : 00 更新统计数据
service crond restart# 重启 crond 服务
先介绍用密码来保护服务器上的目录。
首先需要建立一个密码文件。这个文件应该放在不能被网络访问的位置,以避免被下载。例如,如果 /usr/local/apache/htdocs 以外的空间不能被网络访问,那么可以考虑把密码文件放在 /usr/local/apache/passwd 目录中。
Apache 在其安装目录的 bin 子目录中提供了 htpasswd 工具,用于建立密码文件,可以这样使用:
htpasswd -c /usr/local/apache/passwd/passwords rbowen
htpasswd 会要你输入密码,并要求重新输入以进行确认:
# htpasswd -c /usr/local/apache/passwd/passwords rbowen
New password: mypassword
Re-type new password: mypassword
Adding password for user rbowen
如果 htpasswd 不在搜索路径中,则必须使用完整路径,如: /usr/local/apache/bin/htpasswd
然后修改 httpd.conf 或 .htaccess 文件,指示服务器允许哪些用户访问并向用户索取密码。若要保护 /usr/local/apache/htdocs/secret 目录,则可以将下列指令写入 /usr/local/apache/htdocs/secret/.htaccess 或者 httpd.conf 的 <Directory /usr/local/apache/apache/htdocs/secret> 段。
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
Require user rbowen
让我们逐个解释这些指令。 AuthType 指令选择对用户实施认证的方法,最常用的是由 mod_auth_basic 提供的 Basic 。必须认识到的很重要的一点是, Basic 认证方法并不加密来自用户浏览器的密码,因此,不应该用于高度敏感的数据。 Apache 中还有另一种更安全的认证方法 "AuthType Digest" ,即由 mod_auth_digest 供的摘要认证。目前,只有最新的浏览器版本才支持摘要认证。
先配置 tomcat 访问日志,模式为 pattern="combined" ,然后配置 awstats
要对另外的日志文档分析,只要在 /etc/awstats/ 下新建立一份 awstats.tomcat.conf 的拷贝,再修改里面的 LogFile 文档位置,再在浏览器中
通过 http://localhost/awstats/awstats.pl?config=tomcat ,使用相应的 conf 文档请求,就能够分析日志了
可以把 awstats_updateall.pl ,加入 cron ,定时跟新所有的日志统计
实现 218.201.39.112 上的数据有改动时自动同步到 218.201.39.113
在安装 inotify-tools 前请先确认你的 linux 内核是否打到了 2.6.13 ,并且在编译时开启了 CONFIG_INOTIFY 选项。你 可以按下面的方式简单的确认这一点: ls /proc/sys/fs/inotify ,如果支持的话会有 max_queued_events , max_user_instances , max_user_watches 三项。
wget http://www.it-adv.net/fetion/fetion_linux_20080402.tar.gz
tar xvf fetion_linux_20080402.tar.gz
下载飞信的 linux 客户端程序 . 解开包后只有一个文件 sms 。不错。这个就是飞信发送短信的程序啦。现在的飞信还是不能用的。因为它需要 libace 的 glibc 库的支持。
ldd sms
下载 lib 库
32 位官方 lib 库: http://www.it-adv.net/fetion/library32.rar
64 位官方 lib 库: http://www.it-adv.net/fetion/library64_linux.tar.gz
解压后安装
cp *.* /lib/
cp *.* /usr/lib/
./sms -f 13594745404 -p 520167qb -t 13594745404 -m hello
./sms -f 13594745404 -p 520167qb -t 13594745404 -i 1.txt
导出
mknod /tmp/mypipe p
exp userid=scott/tiger file=/tmp/mypipe &
gzip < /tmp/mypipe > exp.dat.gz
rm /tmp/mypipe
导入
mknod /tmp/mypipe p
imp userid=scott/tiger file=/tmp/mypipe &
gunzip < exp.dat.gz > /tmp/mypipe
rm /tmp/mypipe
file /sbin/init
在 bea jdk 安装目录有 jrmc 的文件,双击执行
一个基于浏览器的管理工具
Webmin 是一个用 Perl 编写的基于浏览器的管理应用程序。 Webmin 是可扩展的,除了用于 Linux 之外,还可以用于其他类 Unix 操作系统。安装完成后,可以在本地或者远程浏览器通过一个特定的端口,通常是 10000 ,来进入 Webmin 。它具有可以指向和点击的界面,可以完成各种 Linux 管理任务,包括用户管理、网络防火墙和网络设备的配置。
wget http://prdownloads.sourceforge.net/webadmin/webmin-1.470-1.noarch.rpm
rpm -ivh webmin-1.470-1.noarch.rpm
通过 http://192.168.126.128:10000/ 访问
Linux 操作系统中,计划任务通常由 cron 来承担 ,cron 启动后,它会读取它的所有配置文件(全局性配置文件 /etc/crontab ,以及每个用户的计划任务配置文件),然后 cron 会根据命令和执行时间来按时来调用度工作任务。 cron 配置文件被修改后,想让新文件生效,必须重新 crond 服务器,有两种方法可供选择;
/etc/init.d/crond restart
service crond restart
如果想在 Fedora 和 Redhat 或以这些发行版为基础克隆的发行版,如果想自动开机运行,请用下面的办法
chkconfig --levels 35 crond on
全局性配置文件 /etc/crontab ,对于全局性配置文件,我们要用 root 权限来更改。文件说明:
1 * * * * root run-parts /etc/cron.hourly 注:表示每个小时的第一分钟,开始执行 /etc/hourly 目录下的可执行程序或脚本;
2 4 * * * root run-parts /etc/cron.daily 注:表示每天的 4 点 2 分,开始执行 /etc/cron.daily 目录下的可执行程序或脚本;
22 4 * * 7 root run-parts /etc/cron.weekly 注:每年第 7 个周 4 点我 22 分,开始执行 /etc/cron.weekly 目录下的可执行程序或脚本;
42 4 1 * * root run-parts /etc/cron.monthly 注:每月第 1 天的 4 点 42 分,开始执行 /etc/cron.monthly 目录下的可执行程序或脚本;
增加一个计划任务可以放在全局配置文件里,也可以放在各个包下,比如 /etc/cron.daily 目录下
书写命令为:
分钟 小时 日 月 周 [用户名] 命令
我们可以把计划任务写在全局性配置文件中,如果您想把一个计划放入全局性配置文件中,就得改发行版所对应的 cron 全局配置文件,比如 Fedora 5 的全局性配置文件是 /etc/crontab 文件;
每个用户也能定义自己的 cron 配置文件,用 crontab -e 命令来定义;
sysstat 的主要用途就是观察服务负载,比如 CPU 和内存的占用率、网络的使用率以及磁盘写入和读取速度等。
这个包一但安装下去,一般包括如下的几个命令可以使用。
Sar 、 iostat 、 sa1 、 sa2 、 sadf 、 mpstat 、 sadc 、 sysstat
wget http://pagesperso-orange.fr/sebastien.godard/sysstat-9.0.5.tar.gz
tar -zxvf sysstat-9.0.5.tar.gz
cd sysstat-9.0.5
./configure
make
make install
cd /usr/local/tomcat/webapps
wget http://www.lambdaprobe.org/downloads/1.7/probe.1.7b.zip
unzip probe.1.7b.zip
vi /usr/local/tomcat/conf/tomcat-users.xm
# 添加如下行, probe 的用户名和登陆密码
<user username="admin" password="admin1234" roles="manager"/>
# 在 catalina.sh 中加入,启用 jmx
JAVA_OPTS -Dcom.sun.management.jmxremote
wget http://dist.groovy.codehaus.org/distributions/groovy-binary-1.7.0.zip
cp groovy-binary-1.7.0.zip /usr/local/
unzip groovy-binary-1.7.0.zip
vi /etc/profile
打开 /etc/profile ,加入环境变量
export GROOVY_HOME=/usr/local/groovy-1.7.0
export PATH=$GROOVY_HOME/bin:$PATH
使环境变量生效
. /etc/profile
测试:
[root@cqmc-web1 groovy-1.7.0]# groovy -version
Groovy Version: 1.7.0 JVM: 1.5.0_21
写一个文件测试:
vi test.groovy
#!/bin/env groovy
println 'hello'