鸟哥的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