Linux 第39天 计划任务、脚本执行控制

Linux 第39天 计划任务、脚本执行控制

时间:20180829


目录

nohup

时间同步程序

计划任务

linux小知识

cent7进入紧急救援模式

cent7清理临时文件tmp下的文件所用的服务

睡眠命令

脚本执行控制

lsof




nohup 后台执行某命令不受终端结束而结束

如 nohup ping 192.168.0.1

此时如果终端断开也不会影响此命令的后台运行


小括号将前台进程放至后台运行

(ping 172.0.0.1 &);(ping 172.0.0.20 &);(ping 172.0.0.30 &);

大括号将前台进程放至后台运行(注意括号两边必须要有空格)

{ ping 127.0.0.1 & ping 127.0.0.20 & ping 127.0.0.30 & }



时间同步程序

ntpdate

一个可以将远程主机所提供的时间同步至自己的机器上

安装包名ntp

安装后会生成此文件/etc/ntp.conf

将其中的server 字段加一个自己的ntp服务器IP

启动服务 service ntpd start 此时便会同步远程服务器的时间至本地主机

chrony

此为centos7上使用的时间同步工具也是基于ntp协议实现的,只是此同步时间软件

不会瞬间将服务器时间同步至本地,如果服务器时间为8:00am 本地时间为8:00pm

同时是不会瞬间将时间改为8:00am而是慢慢的将时间改为8:00am中间会有过度时间



计划任务

一次性计划任务at(在未来的时间定义某个任务只执行一次)

建议将定义的计划任务的标准输出重定义至/dev/null

atd

at

-c 查看某个job

-f 指定一个文件来做为任务

-l 列出一次性计划任务

-m 指定任务结束会发送邮件给用户,即便没有输出也发邮件

-d 删除某任务

禁止某系统用户使用at计划任务

at.deny

at.allow(优先)

若两个文件都不存在则所有普通用户都无法使用at计划任务

所有的at队列都存放在/var/spool/at/


周期性计划任务cron(定义后会再每隔指定的时间执行某任务)

程序包 cronie crontabs


30 2 1,10 * sun 表示1号10号执行脚本或周日也会执行

分时月日周

特殊表示方式 1,2 即表示所在位置的对应此两个数值,如月则表示1月份和2月份

*/2 每隔2个单位执行一次,,如分钟上则表示每2分钟执行一次任务

1-5 表示连续5个单位执行一次,如周上设置表示周一至周五


crontab 周期性计划任务编辑工具(含带语法检查作用)

-e 编辑计划任务

-l 列出计划任务

-u 列出指定用户的计划任务(管理员权限)

-r 移除计划任务

-i 交互与-r合起来使用即删除之前会有提示确定要删除不


crontab配置加色彩 增加环境变量 EDITOR=vim


/var/log/cron cron的日志



linux小知识

比如忘记root密码时则可在linux16一行最后加上

cent7进入紧急救援模式

rd.break

即可进入紧急模式


cent7清理临时文件tmp下的文件所用的服务

systemd-tmpfiles-setup(服务centos7上使用)



睡眠命令

即当在脚本中执行某命令后需要等一段时间再执行其它命令则可使用

sleep 指定暂停多少秒后再执行下一条指令后可加单位默认为s还有m,h

usleep 后所跟的为微秒即1000微秒为1毫秒,如果不加数值则默认为1微秒


killall -0 statu.php &>/dev/null 判断进程是否存在



脚本执行控制

条件判断

if list; then list; [ elif list; then list; ] ... [ else list; ] fi

list为判断条件可以是命令的执行状态码或条件判断[]、test

case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac

word为变量 pattern用来匹配此变量


循环

for name [ [ in [ word ... ] ] ; ] do list ; done

使用时一般是已知循环次数




lsof (list open files)查看当前系统文件的工具

在linux环境下,一切皆文件,用户通过文件不仅可以访问常规数据,还可以访问网络

连接和硬件如传输控制协议(TCP)和用户数据报协议(UDP)套接字等,系统在后台都为

该应用程序分配了一个文件描述符。

-c<进程名> 列出指定进程所打开的文件

-g 列出GID号进程详情

-d<文件号> 列出占用该文件号的进程

+d<目录> 列出目录下被打开的文件

+D<目录> 递归列出目录下被打开的文件

-p<进程号> 列出指定进程号所打开的文件

-u<用户名> 列出指定用户打开的文件


lsof 恢复删除文件(提前是文件虽然删除但是还有进程访问此文件)cent7下

lsof|grep /var/log/message

rm -f /var/log/messages

lsof|grep /var/log/message

会查看到一个进程ID

cat /proc/653/fd/6

cat /proc/653/fd/6 > /var/log/message


猜你喜欢

转载自blog.51cto.com/winthcloud/2167058