linux系统的任务计划

 ntsysv命令

        ntsysv命令提供了一个基于文本界面的菜单操作方式,集中管理系统不同的运行等级下的系统服务启动状态。在RedHat各个发行版,CentOS各个版本,都自带这个工具。它具有互动式操作界面,您可以轻易地利用方向键和空格键等,开启,关闭操作系统在每个执行等级中,所要执行的系统服务。

         yum安装:yum install -y ntsysv

         运行ntsysv 命令会弹出配置窗口:

 linux系统的日常管理2_definition

 

 按键盘的上下方向键进行移动,按空格键选择或者取消,中括号内显示有 * 表示开启,否则不开启。

 

 chkconfig命令

        chkconfig命令检查、设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。

        选项:

        --add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据;
        --del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据;
        --level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关毕。

         --list [name]: 显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。

        等级代号列表:

  • 等级0表示:表示关机

  • 等级1表示:单用户模式

  • 等级2表示:无网络连接的多用户命令行模式

  • 等级3表示:有网络连接的多用户命令行模式

  • 等级4表示:不可用

  • 等级5表示:带图形界面的多用户模式

  • 等级6表示:重新启动

        

     应用举例:

开启指定服务:

 [root@hpf-linux cron]# chkconfig --list atd//列出atd服务的运行状态
atd             0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:启用 6:关闭
[root@hpf-linux cron]# chkconfig atd off//关闭服务
[root@hpf-linux cron]# chkconfig --list atd
atd             0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
[root@hpf-linux cron]# chkconfig atd on//开启服务
[root@hpf-linux cron]# chkconfig --list atd
atd             0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[root@hpf-linux cron]# chkconfig --level 234 atd off//按等级代号关闭服务
[root@hpf-linux cron]# chkconfig --list atd
atd             0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:启用 6:关闭
[root@hpf-linux cron]# chkconfig --level 234 atd on//按等级代号开启服务
[root@hpf-linux cron]# chkconfig --list atd
atd             0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

 开启新服务:

[root@hpf-linux cron]# cd /etc/init.d/ //服务都是放在此目录中
[root@hpf-linux init.d]# ls
atd     functions  kdump       mysqld      network      restorecond  single
auditd  halt       killall     named       portreserve  rsyslog      sshd
crond   ip6tables  mdmonitor   netconsole  postfix      sandbox      sysstat
cups    iptables   messagebus  netfs       rdisc        saslauthd    udev-post
[root@hpf-linux init.d]# cp atd aming //可以在此目录添加mysqld、httpd或者自定义脚本等服务
[root@hpf-linux init.d]# ls
aming   functions  killall     netconsole   rdisc        single
atd     halt       mdmonitor   netfs        restorecond  sshd
auditd  ip6tables  messagebus  network      rsyslog      sysstat
crond   iptables   mysqld      portreserve  sandbox      udev-post
cups    kdump      named       postfix      saslauthd
[root@hpf-linux init.d]# chkconfig --list aming
aming 服务支持 chkconfig,但它在任何级别中都没有被引用(运行“chkconfig --add aming”)
[root@hpf-linux init.d]# chkconfig --list |grep aming
[root@hpf-linux init.d]# chkconfig --add aming //添加aming服务
[root@hpf-linux init.d]# chkconfig --list |grep aming
aming           0:关闭 1:关闭 2:关闭 3:启用 4:启用 5:启用 6:关闭

[root@hpf-linux init.d]# chkconfig --level 35 aming on //修改服务默认启动等级

 [root@hpf-linux init.d]# chkconfig --del aming
[root@hpf-linux init.d]# chkconfig --list aming
aming 服务支持 chkconfig,但它在任何级别中都没有被引用(运行“chkconfig --add aming”)
[root@hpf-linux init.d]# ls
aming   functions  killall     netconsole   rdisc        single
atd     halt       mdmonitor   netfs        restorecond  sshd
auditd  ip6tables  messagebus  network      rsyslog      sysstat
crond   iptables   mysqld      portreserve  sandbox      udev-post
cups    kdump      named       postfix      saslauthd

 

 linux系统日志

 

centos6默认改为 rsyslog.conf 之前版本是 syslog.conf. 该配置文件主要信息为:记录哪些服务和需要记录什么等级的信息。

日志格式:
auth –pam产生的日志
authpriv –ssh,ftp等登录信息的验证信息
cron –时间任务相关
kern –内核
lpr –打印
mail –邮件
mark(syslog)–rsyslog服务内部的信息,时间标识
news –新闻组
user –用户程序产生的相关信息
uucp –unix to unix copy, unix主机之间相关的通讯
local 1~7 –自定义的日志设备

日志级别:
debug –有调式信息的,日志信息最多
info –一般信息的日志,最常用
notice –最具有重要性的普通条件的信息
warning –警告级别
err –错误级别,阻止某个功能或者模块不能正常工作的信息
crit –严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert –需要立刻修改的信息
emerg –内核崩溃等严重信息
none –什么都不记录
从上到下,级别从低到高,记录的信息越来越少


连接符号
.xxx: 表示大于等于xxx级别的信息
.=xxx:表示等于xxx级别的信息
.!xxx:表示在xxx之外的等级的信息

 

 系统的那些讯息以及应该记录在那些档案, 或如何显示, 是由 /etc/syslog.conf 来控制的. 以下是 RedHat 的 /var/log 目录中一些重要的记录档案的说明.

1. /var/log/lastlog : 记录每个使用者最近签入系统的时间, 因此当使用者签入时, 就会显示其上次签入的时间, 您应该注意一下这个时间, 若不是您上次签入的时间, 表示您的帐号可能被人盗用了. 此档可用 /usr/bin/lastlog 指令读取.

我们在登陆的时候不知道大家看到了不,LINUX会显示我们上一次登陆的时间 我们第一次开启的时候不知道但是在第二次的时候就看到了!呵呵 我够仔细的吧!

2. /var/run/utmp : 记录每个使用者签入系统的时间, who, users, finger 等指令会查这个档案.

3. /var/log/wtmp : 记录每个使用者签入及签出的时间, last 这个指令会查这个档案. 这个档案也记录 shutdown 及 reboot 的动作.

4. /var/log/secure : 记录那些站台连线进来, 以及那些位址连线失败.

5. /var/log/maillog : 记录 sendmail 及 pop 等相关讯息.

6. /var/log/cron : 记录 crontab 的相关讯息

7. /var/log/dmesg : /bin/dmesg 会将这个档案显示出来, 它是开机时的画面讯息.

8. /var/log/xferlog : 记录那些位址来 ftp 拿取那些档案.

9. /var/log/messages : 系统大部份的讯息皆记录在此, 包括 login, check password , failed login, ftp, su 等。

 

 

last 用来查看登录linux的历史信息

last命令输出信息实际上是读取/var/log/wtmp 二进制文件,不能用cat vim head tail查看;

 [root@hpf-linux init.d]# last
root     pts/0        192.168.1.100    Wed Apr 22 15:26   still logged in  
reboot   system boot  2.6.32-504.12.2. Wed Apr 22 15:23 - 18:58  (03:35)   
root     pts/1        192.168.1.100    Tue Apr 21 17:17 - down   (00:13)   
root     pts/0        192.168.1.100    Tue Apr 21 15:50 - down   (01:40)   
reboot   system boot  2.6.32-504.12.2. Tue Apr 21 15:48 - 17:30  (01:42)

 .......

 

 lastb 查看无效的登录历史,有人恶意登录会记录; 实际上是读取/var/log/btmp文件

 [root@hpf-linux init.d]# lastb
root     tty1                          Fri Apr 17 15:59 - 15:59  (00:00)   
root     tty1                          Thu Apr 16 16:28 - 16:28  (00:00)   
 root    tty1                          Wed Apr 15 16:19 - 16:19  (00:00)   
123456   ssh:notty    192.168.1.100    Sun Apr 12 02:32 - 02:32  (00:00)   
123456   ssh:notty    192.168.1.100    Sat Apr 11 02:45 - 02:45  (00:00)

 

     dmesg命令被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息保存在/var/log/dmesg文件里

     dmesg命令和/var/log/dmesg是不一样的,还需今后有时间找出其中的不同。

 

screen命令

    

一、背景

系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。

二、简介

GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。

GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。

  • 会话恢复

  • 只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。

  • 多窗口

  • 在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。

  • 会话共享

  • Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。

参数说明

-A  将所有的视窗都调整为目前终端机的大小。
-d <作业名称>  将指定的screen作业离线。
-h <行数>  指定视窗的缓冲区行数。
-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称>  恢复离线的screen作业。
-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s  指定建立新视窗时,所要执行的shell。
-S <作业名称>  指定screen作业的名称。
-v  显示版本信息。
-x  恢复之前离线的screen作业。
-ls或--list  显示目前所有的screen作业。
-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

四、常用screen参数

screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session

在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。
C-a ? -> 显示所有键绑定信息
C-a c -> 创建一个新的运行shell的窗口并切换到该窗口
C-a n -> Next,切换到下一个 window
C-a p -> Previous,切换到前一个 window
C-a 0..9 -> 切换到第 0..9 个 window
Ctrl+a [Space] -> 由视窗0循序切换到视窗9
C-a C-a -> 在两个最近使用的 window 间切换
C-a x -> 锁住当前的 window,需用用户密码解锁
C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。
C-a z -> 把当前session放到后台执行,用 shell 的 fg 命令则可回去。
C-a w -> 显示所有窗口列表
C-a t -> Time,显示当前时间,和系统的 load
C-a k -> kill window,强行关闭当前的 window
C-a [ -> 进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样
C-b Backward,PageUp
C-f Forward,PageDown
H(大写) High,将光标移至左上角
L Low,将光标移至左下角
0 移到行首
$ 行末
w forward one word,以字为单位往前移
b backward one word,以字为单位往后移
Space 第一次按为标记区起点,第二次按为终点
Esc 结束 copy mode
C-a ] -> Paste,把刚刚在 copy mode 选定的内容贴上

 

事例操作:

[root@hpf-linux init.d]# screen   //另开一个窗口进入

[root@hpf-linux init.d]# top  //在输入命令后放入后台,退出按Ctrl+a d

[root@hpf-linux init.d]# screen // 在另开一个窗口进入

[root@hpf-linux init.d]# vmstat 1 //在输入命令后放入后台,退出按Ctrl+a d

[root@hpf-linux init.d]# screen -ls //列出后台命令
There are screens on:
 1903.pts-0.hpf-linux (Detached)
 1931.pts-0.hpf-linux (Detached)
2 Sockets in /var/run/screen/S-root.
[root@hpf-linux init.d]# screen -r 1903//进入指定的后台命令,进入后按Ctrl+c关闭进程,输入exit退出。

[detached]

 [root@hpf-linux init.d]# screen -S aming//指定后台进程的名字

[detached]
[root@hpf-linux init.d]# screen -ls
There are screens on:
 1903.pts-0.hpf-linux (Detached)
 1950.aming (Detached)
 1931.pts-0.hpf-linux (Detached)
3 Sockets in /var/run/screen/S-root.

 

参考:

http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html

http://www.jb51.net/os/RedHat/1162.html

http://8802265.blog.51cto.com/8792265/1636492

扩展:

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=2181978&highlight=

http://blog.chinaunix.net/uid-38608-id-2411105.html

http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html