石家庄网站设计公司,江门网站推广策划,wordpress redis 插件,做个网站要多少钱建站费用明细表本章结构#查看进程#控制进程#at一次性任务设置#crontab周期性任务设置程序和进程的关系#程序保存在硬盘、光盘等介质中的可执行代码和数据静态保存的代码#进程在cpu及内存中运行的程序代码动态执行的代码父、子进程#xff1a;每个进程可以创建一个或多个进程查看进程ps#ps命令…本章结构#查看进程#控制进程#at一次性任务设置#crontab周期性任务设置程序和进程的关系#程序保存在硬盘、光盘等介质中的可执行代码和数据静态保存的代码#进程在cpu及内存中运行的程序代码动态执行的代码父、子进程每个进程可以创建一个或多个进程查看进程ps#ps命令查看静态的进程统计信息 #PS命令—查看静态的进程统计信息ps命令是Linux系统中最为常用的进程查看工具主要用于显示高喊挡圈运行的各个进程完整信息的静态快照a显示当前终端下所有进程信息包含其他用户进程与“x”选项结合时显示系统中所有进程信息u使用以用户为主的格式输出进程信息x显示当前用户在所有终端下的进程信息-e:显示系统内的所有进程信息-l使用长格式显示进程信息-f使用完整的格式显示进程信息 USER启动该进程的用户账号名称PID该进程在系统中的数字ID在当前系统中是唯一的TTY标名该进程在那个哪个终端上运行“”表示不需要终端STAT显示了进程当前的状态如S(休眠)、R(运行)、Z(僵尸)、 START启动该进程的时间TIME该进程占用的时间查看进程信息TOP#top命令查看动态的进程排名信息(还有防止掉线的功能) 查看进程信息pgrep#pgrep命令根据特定条件查询今晨PID信息 查看进程信息pstree#pstree命令以树形结构列出进程信息 ###yum -y install psmisc 安装pstree命令pstree -aup-a显示完整信息-u列出对应用户名-p列出对应PID号进程的前后台调度#CrilZ组合键将当前进程挂起即调入后台并停止执行#jobs命令查看处于后台的任务列表#fg命令 (fg 1)将后台进程恢复到前台运行可指定任务序号终止进程的运行#CtriC组合键终端正在执行的命令#kill、killall命令kill用于终止指定PID号的进程killall用于终止指定名称的所有进程-9选项用于强制终止终止进程的运行#pkill命令根据特定条件终止相应的进程常用命令选项-U:根据进程所属的用户名终止相应进程-t根据进程所在的终端终止相应进程 计划任务管理#at命令一次性计划任务 例如在当天的2130时自动关闭当前系统 计划任务管理crontab#crontab命令按照预先设置的时间周期(分钟、小时、天····)重复执行用户指定的命令操作属于周期性计划任务主要设置文件全局配置文件位于文件/etc/crontab系统默认的设置位于目录/etc/cron.*/用户定义的设置位于文件/var/spool/cron/用户名计划任务管理crontab#管理crontab计划任务编辑计划任务crontab -e 【-u 用户名】查看计划任务crontab - l 【-u 用户名】删除计划任务crontab -r 【-u 用户名】crontab任务配置的格式 #时间数值的特殊表示方法表示该范围内的任意时间表示间隔的多个不连续时间点表示一个连续的时间范围/ 指定间隔的时间频率举例0 17 * * 1-5 周一到周五每天170030 8 * * 135 每周一、三、五的8点30分0 8-18/2 * * * 8点到18点之间每2小时0 * */3 * * 每三天###常用的Crontab命令安装crontabyum install crontabs查看定时任务列表crontab -l编辑定时任务crontab –e【等同于 vim /var/spool/cron/root】删除定时任务crontab –r备份定时任务crontab -l $HOME/backMyCrontabcrontab服务操作说明service crond start //启动服务service crond stop //关闭服务service crond restart //重启服务service crond reload //重新载入配置service crond status//查看crontab服务状态实例每隔2分钟输出当前时间到文件*/2 * * * * echo $(date) /test/date.log在 12 月内, 每天的早上 6 点到 12 点每隔 3 个小时 0 分钟执行一次 /usr/bin/backup0 6-12/3 * 12 * /usr/bin/backup每天3-5,17-20每隔30分钟同步一次互联网时间并且不输出日志到crontab将结果输出到logecho “*/30 [3-5],[17-20] * * * /usr/bin/ntpstat time.windows.com /dev/null 21” /var/cron.log每隔两天的上午8点到11点的第3和第15分钟执行command3,15 8-11 */2 * * command每个星期一的上午8点到11点的第3和第15分钟执行command3,15 8-11 * * 1 command每周六、周日的1:10重启smb10 1 * * 6,0 /etc/init.d/smb restart每周一至周五3点钟在目录/home中查找文件名为*.xxx的文件并删除4天前的文件。00 03 * * 1-5 find /home “*.xxx” -mtime 4 -exec rm {} ;每小时执行/etc/cron.hourly目录内的脚本01 * * * * root run-parts /etc/cron.hourlyCrontab使用小结1.环境变量问题例如crontab不能识别Java的环境变量crontab执行shell时只能识别为数不多的环境变量普通的环境变量是无法识别的所以在编写shell时最好使用export重新声明变量确保脚本执行。2.命令的执行最好用脚本3.脚本权限加/bin/sh规范路径/server/scripts4.时间变量用反斜线转义最好用脚本5.定时任务添加注释6./dev/null 21 /dev/null,别随意打印日志文件7.定时任务里面的程序脚本尽量用全路径8.避免不必要的程序以及命令输出9.定时任务之前添加注释10.打包到文件目录的上一级知识拓展查看crontab的日志记录linux看 /var/log/cron.log这个文件就可以可以用tail -f /var/log/cron.log观察。或者是 less /var/log/cron 输入G(大写)直接到末尾查看最新的日志信息。mail任务在 /var/spool/mail/root 文件中有crontab执行日志的记录用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。系统任务调度系统周期性所要执行的工作比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件这个就是系统任务调度的配置文件。/etc/crontab文件包括下面几行SHELL/bin/bashPATH/sbin:/bin:/usr/sbin:/usr/binMAILTOHOME/第一行SHELL变量指定了系统要使用哪个shell这里是bash第二行PATH变量指定了系统执行命令的路径第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户如果MAILTO变量的值为空则表示不发送任务执行信息给用户第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。用户任务调度用户定期要执行的工作比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在/var/spool/cron目录中。其文件名与用户名一致使用者权限文件如下/etc/cron.deny 该文件中所列用户不允许使用crontab命令/etc/cron.allow 该文件中所列用户允许使用crontab命令/var/spool/cron/ 所有用户crontab文件存放的目录,以用户名命名使用注意事项注意环境变量问题有时我们创建了一个crontab但是这个任务却无法自动执行而手动执行这个任务却没有问题这种情况一般是由于在crontab文件中没有配置环境变量引起的。在 crontab文件中定义多个调度任务时需要特别注意的一个问题就是环境变量的设置因为我们手动执行某个任务时是在当前shell环境下进行的程 序当然能找到环境变量而系统自动执行任务调度时是不会加载任何环境变量的因此就需要在crontab文件中指定任务运行所需的所有环境变量这 样系统执行任务调度时就没有问题了。不要假定cron知道所需要的特殊环境它其实并不知道。所以你要保证在shelll脚本中提供所有必要的路径和环境变量除了一些自动设置的全局变量。所以注意如下3点1)脚本中涉及文件路径时写全局路径2)脚本执行要用到java或其他环境变量时通过source命令引入环境变量如cat start_cbp.sh#!/bin/shsource /etc/profileexport RUN_CONF/home/d139/conf/platform/cbp/cbp_jboss.conf/usr/local/jboss-4.0.5/bin/run.sh -c mev 3)当手动执行脚本OK但是crontab死活不执行时。这时必须大胆怀疑是环境变量惹的祸并可以尝试在crontab中直接引入环境变量解决问题。如0 * * * * . /etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh注意清理系统用户的邮件日志(命令rm -f /val/mail/root )每条任务调度执行完毕系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户这样日积月累日志信息会非常大可能会影响系统的正常运行因此将每条任务进行重定向处理非常重要。例如可以在crontab文件中设置如下形式忽略日志输出0 */3 * * * /usr/local/apache2/apachectl restart /dev/null 21“/dev/null 21”表示先将标准输出重定向到/dev/null然后将标准错误重定向到标准输出由于标准输出已经重定向到了/dev/null因此标准错误也会重定向到/dev/null这样日志输出问题就解决了。系统级任务调度主要完成系统的一些维护操作用户级任务调度主要完成用户自定义的一些任务可以将用户级任务调度放到系统级任务调度来完成(不建议这么 做)但是反过来却不行root用户的任务调度操作可以通过“crontab –uroot –e”来设置也可以将调度任务直接写入/etc /crontab文件需要注意的是如果要定义一个定时重启系统的任务就必须将任务放到/etc/crontab文件即使在root用户下创建一个 定时重启系统的任务也是无效的。其他注意事项新创建的cron job不会马上执行至少要过2分钟才执行。如果重启cron则马上执行。当crontab突然失效时可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。千万别乱运行crontab -r。它从Crontab目录(/var/spool/cron)中删除用户的Crontab文件。删除了该用户的所有crontab都没了。在crontab中%是有特殊含义的表示换行的意思。如果要用的话必须进行转义%如经常用的date ‘%Y%m%d’在crontab里是不会执行的应该换成date ‘%Y%m%d’。