shellNote--day10

shellNote

day10

  • $$变量

    $$变量来显示linux系统分配给该脚本的PID;

  • 查看作业–jobs

    jobs命令可以查看分配给shell的作业;

    jobs命令输出有加号和减号;

    带加号被当做默认作业,在使用作业控制命令时,没有指明作业号会默认操作此作业;

    带减号被当做下一个默认作业;

    • 参数
参数描述
-l列出进行的PID以及作业号
-n只列出上次shell发出的通知后改变了状态的作业
-p只列出作业的PID
-r只列出运行中的作业
-s只列出已停止的作业
  • 重启停止的作业

    Ctrl+z组合键,可以暂停命令;

    • 在后台模式重启一个作业–bg命令

      bg命令加上作业号,在后台模式重启作业;

    • 在前台模式重启作业–fg命令

      fg命令加上作业号,在前台模式重启作业,注意:会接管此时的终端会话;

  • 调度优先级

    内核分配给进程的CPU时间,默认情况下,shell启动的进程的优先级相同,优先级值为0;

    调度优先级,从-20到+19,值越低优先级越高;

    • 启动设置优先级–nice命令

      nice命令可以在启动命令时设置优先级;

      -n选项来指定优先级的值,直接-优先级的值也可以;

      nice -n 10 ./test.sh &

      nice -10 ./test.sh &

      nice命令要和启动命令放在同一行

      一旦nice命令以低优先级运行了脚本,就不能提高其优先级,只能通过管理员root来进行优先级提高

    • 调整运行命令优先级–renice命令

      renice命令可以在命令运行时调整优先级;

      允许指定运行的PID来改变优先级;

      renice -n 10 -p 5055

      • 只能对属于你的进程执行renice;

      • 只能通过renice降低优先级;

      • root用户可以通过renice随意调整进程的优先级;

  • 计划执行作业–at命令

    at [-f filename] time

    -f参数来指定用于读取命令的文件名,就是脚本文件;

    time参数指定了何时运行该作业;

    如果当天时间错过,会在第二天那个时候运行;

    • 守护进程–atd

      at进行的守护进程atd,检查作业列队来运行作业,atd检查系统特殊目录/var/spoon/at,来获取at命令提交的作业;

      默认情况下,每60s检查一次;

    • 作业队列优先级

      存在26个作业队列,通常用字母a-z来指代,字母排序越高,优先级越低;

      可以使用-q参数来指定队列字母;

    • at命令运行的作业的输出

      默认情况下,会将输出发送到用户的电子邮箱;

      当然这样是不方便的,建议在使用at命令时,对STDOUT和STDERR进行重定向,或者-M参数来屏蔽作业产生输出信息;

    • 列出等待的作业–atq

      作业列表中显示了作业号、系统运行该作业的日期和时间及其所在的作业队列;

    • 删除等待作业–atrm

      atrm 18–18为作业号;

      只能删除自己提交的作业;

  • 定期执行脚本

    • cron时间表

      min hour dayofmonth month dayofweek command

      允许用特定值,取值范围(比如1-5),通配符来指定条目;

      每天10:15运行命令:

      15 10 * * * command

      每个月每周一10:15运行命令:

      15 10 * * 1 command

      可以用三字符文本(mon,tue,wed,thu,fri,sat,sun)或数值(0周日,6周六);

      每个月最后一天指定:

      00 12 * * * if [ date +%d -d tomorrow = 01 ] ; then ; command – 使用date命令来检查是不是当月最后一天;

      注意:命令列表必须指定脚本的全部路径;

    • 构建cron时间表–crontab

      • -l参数

        crontab -l

        列出已有的crontab时间表;

      • -e参数

        crontab -e

        打开一个文本编辑器,在其中编辑时间表;

    • cron目录

      有4个基本cron目录:hourly,daily,monthly,weekly;

      如果不是对时间精度很高,可以将脚本存放在cron目录中;

      目录位置见:ls /etc/cron.*ly

    • anacron程序

      当cron程序,在安排时间时,系统处于关机状态,可以使用anacron来运行错过的作业;

      anacron使用自己的时间表来检查作业目录,/etc/anacrontab;

      anacron不会处理执行时间需求小于一天的脚本;

  • .bashrc文件

    每次启动一个新的shell时,都会运行.bashrc文件;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值