日期:2014-05-16  浏览次数:20839 次

鸟哥的Linux私房菜-基础学习篇9

55.Linux工作任务分配的种类:at、cron

at:工作仅执行一次就从Linux系统的任务分配中消失

cron:工作将持续做下去

?

系统常见的例行性命令:

登录文件的数据轮转(log rotate)、rpm数据库的建立、建立locate的数据库、程序分析、检查登陆文件、指纹数据库的比较

?

#/etc/init.d/atd restart

#chkconfig --level 35 atd on

工作记录文件默认放在/var/spool/at下面

利用/etc/at.allow和/etc/at.deny这两个文件来限制at的使用

?

建立例行性命令使用crontab命令

/etc/cron.allow和/etc/cron.deny

工作会被记录到/var/spool/cron中

#crontab [-u username] [-l|-e|-r]

#crontab -e

分 时 日 月 周 命令串

?

56.在Linux系统中,触发任何一个事件,系统都会将它定义为一个进程,并且给这个进程一个ID,称为PID,同时根据启动这个进程的用户与相关属性关系,给这个PID一组有效的权限设置,从此以后,这个PID能在系统上进行的动作就与PID的权限有关了

进程与程序

子进程与父进程

系统或网络服务:常驻内存程序

常驻内存程序有很多,有系统本身所需要的服务,如刚提到的crond和atd,还有syslog等,还有一些则是负责网络联机的服务,例如Apache、named、postfix、vsftp等等。这些程序执行后,会启动一个可以负责网络监听的端口(port),以提供外部客户端(client)的联机功能

?

57.作业管理:&、[ctrl]-z、jobs、fg、bg、kill

可以在/etc/security/limits.conf里设置用户同时可以登录的联机数

直接将命令放到后台“执行”的&

将“当前”作业放到后台“暂停”:[Ctrl]-z

观察当前后台作业状态:jobs -l (+)表示默认的作业

将后台作业拿到前台处理:fg

让作业在后台运行:bg

管理后台作业:kill,kill -15,kill -9

?

58.进程的观察

#ps -aux:列出当前所有正在内存中的进程

僵尸(zombie)进程:造成僵尸进程的原因是,该进程应该已执行完毕,或者是因故应该终止了,但该进程的父进程却无法完整地结束该进程,而造成那个进程一直存在于内存中。如果您发现在某个进程的CMD后面还有<defunct>时,就表示该进程是僵尸进程

#top -d 2 :每两秒钟更新一次top,观察整体信息

#top -b -n 2 > /tmp/top.txt :将top执行两次,然后将结果输出到/tmp/top.txt

#pstree [-Aup]

要将某个动作赋给已经存在的某个作业时,直接将一个信号(signal)给该PID即可

主要的信号代号与名称的对应内容如下:

1??? SIGHUP?? 表示“让该PID重新读取自己的设置文件”,类似重新启动

2??? SIGINT??? 表示用键盘输入的[Ctrl]-c来中断一个进程的执行

9??? SIGKILL?? 表示强制中断一个进程

15? SIGTERM 表示正常终止一个进程

例子:用ps找出syslog服务的PID后,再使用kill重新读取syslog的设置文件数据

先找到syslog的PID

#ps -aux | grep 'syslog' | grep -v 'grep' | awk '{print $2}'

#kill -SIGHUP `ps -aux | grep 'syslog' | grep -v 'grep' | awk '{print $2}'`

立刻到tail -n 5 /var/log/messages查看syslog是否重新启动

#free [-b|-k|-m|-g] [-t]

#uname -a

#netstat -[atulnp]:常用与网络监控方面,上面是网络接口的相关的联机,下方则是unix进程有关的项目

#dmesg | more :输出所有的核心开机时的消息

?

查询已打开的文件或已执行进程打开的文件(很重要)

#fuser [-ki] [-signal] file/dir

例子:找出当前所在目录的使用pid

#fuser .

通过fuser我们可以找出使用文件、目录的进程进行观察

#lsof :列出当前系统上所有已经打开的文件与设备

#lsof +d /dev :列出当前系统上所有启动的外部设备

#lsof -u root | grep bash :显示属于root的bash进程所打开的文件

lsof能查出某个进程打开或使用的文件与设备

#pidof

?

?

?

?