Linux中包管理与定时任务

第1章 软件查询

1.1 查询软件是否安装

rpm -qa |grep cron 查询是否安装了这个软件.

[root@znix ~]# rpm -qa |grep cron

crontabs-1.10-33.el6.noarch

cronie-1.4.4-16.el6_8.2.x86_64

cronie-anacron-1.4.4-16.el6_8.2.x86_64

[root@znix ~]#

1.2 查看查询是否正在运行

[root@znix ~]# ps -ef |grep crond

root       1570      1  0 Sep02 ?        00:00:00 crond

root      14941  14780  0 09:08 pts/0    00:00:00 grep --color=auto crond

1.3 安装crond的方法

1.3.1 crond属于哪里

crond,不能单独安装,是软件包里所带的功能。

yum安装的时候需要需要安装,

[root@znix ~]# yum install crond

Loaded plugins: fastestmirror, security

Setting up Install Process

Loading mirror speeds from cached hostfile

 * base: mirrors.btte.net

 * extras: mirrors.btte.net

 * updates: mirrors.sohu.com

base                                       | 3.7 kB     00:00    

extras                                     | 3.4 kB     00:00    

updates                                    | 3.4 kB     00:00    

No package crond available.

Error: Nothing to do

1.3.2 查询软件所属软件包

[root@znix ~]# rpm -qf  `which crond`

cronie-1.4.4-16.el6_8.2.x86_64

1.3.3 如何查看软件包里的内容

rpm -ql  显示软件包里的信息。名字必须一致.

[root@znix ~]# rpm -ql cronie

/etc/cron.d

/etc/cron.d/0hourly

/etc/cron.deny

/etc/pam.d/crond

/etc/rc.d/init.d/crond

/etc/sysconfig/crond

/usr/bin/crontab

/usr/sbin/crond

/usr/share/doc/cronie-1.4.4

/usr/share/doc/cronie-1.4.4/AUTHORS

/usr/share/doc/cronie-1.4.4/COPYING

/usr/share/doc/cronie-1.4.4/ChangeLog

/usr/share/doc/cronie-1.4.4/INSTALL

/usr/share/doc/cronie-1.4.4/README

/usr/share/man/man1/crontab.1.gz

/usr/share/man/man5/crontab.5.gz

/usr/share/man/man8/cron.8.gz

/usr/share/man/man8/crond.8.gz

/var/spool/cron

1.3.4 如何查看一个安装的软件

rpm  如何查询软件包的内容

yum 安装不上的,可能是软件包的一部分

查看 crond 属于哪个软件包,查询时要使用绝对路径

1.4 查询ifconfig 属于哪个软件包

[root@znix ~]#

[root@znix ~]# rpm -qf `which ifconfig`

net-tools-1.60-114.el6.x86_64

[root@znix ~]# rpm -ql net-tools

/bin/dnsdomainname

/bin/domainname

第2章 定时任务

2.1 什么是定时任务

每隔相同的时间,相同的事情(执行命令或脚本)。

2.2 系统中的定时任务

[root@znix ~]# ls -ld /etc/cron*

drwxr-xr-x. 2 root root 4096 Aug 10 18:37 /etc/cron.d

drwxr-xr-x. 2 root root 4096 Aug 10 18:38 /etc/cron.daily 

-rw-------. 1 root root    0 Aug 24  2016 /etc/cron.deny

drwxr-xr-x. 2 root root 4096 Aug 10 18:36 /etc/cron.hourly

drwxr-xr-x. 2 root root 4096 Aug 10 18:37 /etc/cron.monthly

-rw-r--r--. 1 root root  457 Sep 27  2011 /etc/crontab

drwxr-xr-x. 2 root root 4096 Sep 27  2011 /etc/cron.weekly

/etc/cron.deny 禁止用户使用定时任务 ,把用户名放到里面

2.2.1 日志切割-日志的轮询

每隔一段时间,将日志进行分割

[root@znix ~]# ls /var/log/messages*

/var/log/messages           /var/log/messages-20170828

/var/log/messages-20170814  /var/log/messages-20170904

/var/log/messages-20170821

2.2.2 日志的轮询的定时任务

[root@znix cron.daily]# cat /etc/logrotate.d/syslog

/var/log/cron

/var/log/maillog

/var/log/messages

/var/log/secure

/var/log/spooler

{

    sharedscripts

    postrotate

    /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

    endscript

}

2.3 用户定时任务crontab

2.3.1 crontab 使用

-e  编辑

-l  查看

-u  设置指定用户的定时任务

[root@znix cron.daily]# crontab --help

crontab: invalid option -- '-'

crontab: usage error: unrecognized option

usage:  crontab [-u user] file

    crontab [-u user] [ -e | -l | -r ]

        (default operation is replace, per 1003.2)

        (edit user's crontab)

        (list user's crontab)

    -r  (delete user's crontab)

    -i  (prompt before deleting user's crontab)

    -s  (selinux context)

2.3.2 指定用户的定时任务

-u 指定用户

[root@znix ~]# crontab -u oldboy -l

#oldboy

[root@znix ~]# ll /var/spool/cron/

total 8

-rw------- 1 root root  8 Sep  7 10:23 oldboy

-rw------- 1 root root 77 Sep  4 20:43 root

2.4 定时任务的使用-

2.4.1 看定时任务的软件的是否能用

[root@znix ~]# ps -ef |grep cron

root       1570      1  0 Sep02 ?        00:00:00 crond

[root@znix ~]# service crond status

crond (pid  1570) is running...

[root@znix ~]# /etc/init.d/crond status

crond (pid  1570) is running...

2.4.2 看定时任务是否开机自启动

[root@znix ~]# chkconfig |grep cron

crond          0:off   1:off   2:on    3:on    4:on    5:on    6:off

2.4.3 linux里的守护进程 (服务)

[root@znix ~]# chkconfig |egrep "crond|network|rsyslog|sshd|sysstat"

crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off   定时任务

network        0:off   1:off   2:on    3:on    4:on    5:on    6:off   网络服务

rsyslog        0:off   1:off   2:on    3:on    4:on    5:on    6:off   系统日志

sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off   远程链接服务器

sysstat        0:off   1:on    2:on    3:on    4:on    5:on    6:off   监测系统性能及效率

2.5 与定时任务相关的文件

2.5.1 定时任务的日志

[root@znix ~]# tail -2 /var/log/cron

Sep  7 10:23:42 znix crontab[15409]: (root) LIST (oldboy)

Sep  7 10:25:01 znix CROND[15412]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1)

2.5.2 定时任务所在目录

[root@znix ~]# ls /var/spool/cron

2.5.3 禁止那些用户使用定时任务

[root@znix ~]# cat /etc/cron.deny

2.6 linux中查看的命令日志

对与较大的文件,查看的时候,尽量不要cat.通过其他的命令,快速找到要找的内容.

grep /egrep

less

tail /tail -f

head

2.7 定时任务的基本格式

* * * * *  CMD

分时日月周 CMD

其中 * 表示每

/n 每隔多长时间

2.7.1 定时任务中的时间

[root@znix ~]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed

2.7.2 定时任务--每5分钟同步一下系统时间

1.用什么命令,首先将命令测试一下,没有错误后,再写入定时任务.

[root@znix ~]# ntpdate ntp1.aliyun.com

 7 Sep 10:52:57 ntpdate[15460]: adjust time server 182.92.12.11 offset 0.479762 sec

2.写定时任务--写定时任务要使用绝对路径, 在后面加上2>&1,表示正确的,错误的都输出到同一个文件中.

[root@znix ~]# crontab -e

###time tongbu

*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1

3.检查结果,可以看日志,也可看命令的执行结果.

[root@znix ~]# tail -1 /var/log/cron

Sep  7 10:55:01 znix CROND[15466]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1)

实例2-1 每分钟把自己的名字 追加到 /oldboy/oldboy.txt

* * * * * /bin/echo clsn >> /oldboy/oldboy.txt

使用tail命令查看命令的执行情况,可以看到文件的内容.

[root@znix ~]# tail -f /oldboy/oldboy.txt

clsn

clsn

clsn

查看日志,查看命令执行的时间.

[root@znix ~]# tail -3 /var/log/cron

Sep  7 12:05:01 znix CROND[15674]: (root) CMD (/bin/echo clsn >> /oldboy/oldboy.txt 2>&1)

Sep  7 12:06:01 znix CROND[15678]: (root) CMD (/bin/echo clsn >> /oldboy/oldboy.txt 2>&1)

Sep  7 12:07:01 znix CROND[15681]: (root) CMD (/bin/echo clsn >> /oldboy/oldboy.txt 2>&1)

2.8 注意

错误:

* * * * *      /bin/echo "oldboy" >>/oldboy/oldboy.txt >/dev/null 2>&1

实例2-2 二者不可同时使用.

定时任务中 命令/脚本定向到空

 /dev/null 2>&1

定时任务中 命令/脚本追加到文件中

 /oldboy/oldboy.txt 2>&1

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏魏豪的专栏

Nagios 监控配置及实战

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。本文主要讲述Nagios ...

2400
来自专栏磨磨谈

掉电后osdmap丢失无法启动osd的解决方案

本篇讲述的是一个比较极端的故障的恢复场景,在整个集群全部服务器突然掉电的时候,osd里面的osdmap可能会出现没刷到磁盘上的情况,这个时候osdmap的最新版...

623
来自专栏Albert陈凯

Hadoop数据分析平台实战——020Hadoop Shell命令(初学跳过)离线数据分析平台实战——020Hadoop Shell命令(可跳过)

离线数据分析平台实战——020Hadoop Shell命令(可跳过) Hadoop Shell命令简单描述 Hadoop的Shell命令主要分为两类: 一类是启...

3105
来自专栏Golang语言社区

Linux下TCP最大连接数受限问题

一、 文件数限制修改 1、用户级别 查看Linux系统用户最大打开文件限制: # ulimit -n 1024 (1) vi /etc/security/li...

4536
来自专栏运维小白

1.8 网络问题排查

1.8 网络问题排查 在NAT模式下变成为桥接模式(右下角,网络适配器) 桥接模式下的方框,不用去选择,打钩。只需要点桥接模式就行 ? 先dhlicen...

1886
来自专栏菜鸟程序员

Docker 容器镜像删除

833
来自专栏清风

Linux 测试远程服务器端口开放命令&测试本地端口占用命令

563
来自专栏漫漫全栈路

Docker循序渐进

上一篇的演示中使用的都是默认登录了Root权限后的操作,而实际的开发运维情况下,我们一般极少使用Root权限,所以Docker提供了一个权限组,我们只需要把当前...

2989
来自专栏从零开始的linux

tomcat多实例

安装tomcat · 复制tomcat cp -a tomcat/ tomcat2 cp -a tomcat/ tomcat3 · 修改配置文件的端口 to...

2784
来自专栏前端知识分享

第106天:Ajax中同步请求和异步请求

用户填写所有信息后,提交给服务器,等待服务器的回应(检验数据),是一次性的。信息错误又要重新填写!

852

扫码关注云+社区