×

linux查看计划任务命令

linux查看计划任务命令(linux怎样查看at的运行结果)

admin admin 发表于2024-01-06 05:52:09 浏览29 评论0

抢沙发发表评论

大家好,linux查看计划任务命令相信很多的网友都不是很明白,包括linux怎样查看at的运行结果也是一样,不过没有关系,接下来就来为大家分享关于linux查看计划任务命令和linux怎样查看at的运行结果的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

linux怎样查看at的运行结果

at命令at:计划任务,在特定的时间执行某项工作,在特定的时间执行一次。格式:at+时间例1:date //查看系统当前时间at 时间 //系统计划启动任务时间at》 date 》/root/1.txt //date:系统计划启动任务时间执行date命令;/root/1.txt执行命令写入位置和文件ctrl+d退出 //退出at命令例2:date //查看系统当前时间at 时间 //系统计划启动任务时间at》 init 0 /root/2.txt //init 0:系统计划启动任务时间执行init 0(关机)命令;/root/2.txt执行命令写入位置和文件例3:在固定时间内添加一个用户(这时建立的用户没有密码)#at 12:00(时间) //at命令设定12:00执行一项操作at》useradd aaa //在at命令里设定添加用户aaactrl+d //退出at命令tail -f /etc/passwd //查看/etc/passwd文件后十行是否增加了一个用户aaa计划任务结束后,查看任务是否写入文件中,可以用cat或vi命令查看。格式:cat(vi)+(路径)文件名

在linux中制定任务计划,如何查看执行结果、

shell》crontab-l可以看到设定的任务shell》crontab-e指定的任务*****/Data/apps/test.sh》》/Data/log/content.log2》&1可以指定你查看执行结果的文档

4-13 Linux中的计划作业 --- crontab(一、crontab 命令操作)

1、 cron:是一个线程,它可以让 linux 周期性的执行某一命令。 2、linux 指定计划任务有两种方式。一种是通过 crontab 命令、另一种是通过 /etc/crontab 配置文件。下面先操作 crontab 命令,后操作 /etc/crontab 文件。 3、 crontab:是一个命令,可以设置 linux 周期性执行某一命令。 crontab 参数选项: -u:设置某一用户的周期性工作(只有 root 权限可以设置)。 -e: crontab 的工作内容。 -l:查阅 crontab 的工作内容。 -r:移除 crontab 的所有工作内容,如需移除单项或非全部,可用 -e 。 4、 crontab 的格式概括: 特殊符号(* 星号、,逗号,- 减号,/ 斜杠),特定的符号可以组合参数的格式、表示范围 和 时间周期。符号格式是表达式的一种,5 个 * 号对标参数格式图解如下: 5、特殊符号解析: 6、crontab 命令案例实操: 6)、指定时间输出 date 。 例:每小时的 0分钟(整点),15分钟、30分钟、45分钟 输出 date 时间到当前目录 date.txt 文件,如果没有 date.txt 文件则会自动创建一个。指定时间的输出,不要分钟区间的 * 号,直接写上时间。单个时间参数直接取代 * 号的位置,多个时间参数用 ,逗号隔开。 7)、例:每天晚上 22:23、22:24、22:25 输出 date 到 mydate.txt 文件。 8)、例:每天 1 点到 3 点的第 10 分钟 和第 50 分钟把 date 输出到 1-3date.txt 文件。 9)、例:每逢周 六、日的 1:00 输出 date 到 mydate.txt。 10)、例:每周日的 00:00 输出 date 到 mydate.txt。

linux计划任务管理

什么是计划任务,计划任务类似于我们平时生活中的闹钟。 在Linux系统的计划任务服务crond可以满足周期性执行任务的需求。 crond进程每分钟会处理一次计划任务, 计划任务主要是做一些周期性的任务目前最主要的用途是定时备份数据

Schedule one-time tasks with at. 一次性调度执行 at

Schedule recurring jobs with cron. 循环调度执行 cron

Schedule recurring system jobs. 所有计划任务执行中的输出都会以邮件的方式发送给指定用户, 除非重定向

// 循环调度执行cron 进程每分钟会处理一次计划任务

# systemctl status crond

# ps aux |grep crond

root 1201 0.0 0.0 126264 1640 ? Ss 11 : 15 0 : 00 /usr/sbin/crond -n

计划任务分为以下两种情况:

系统级别的定时任务:

清理系统缓存 临时文件清理 系统信息采集 日志文件切割

用户级别的定时任务:

定时同步互联网时间 定时备份系统配置文件 定时备份数据库文件

文件 说明 /etc/crontab / /crontab配置文件 /etc/cron.deny / /该文件中所列用户不允许使用crontab命令 /var/spool/cron/ * // 所有用户定时文件都存放此目录,文件以用户名命名 /var/log/cron / /定时任务执行后的日志文件,可用来回溯

crond任务管理

参数 含义 指定示例

# crontab --help -e crontab文件内容 crontab -e-l 查看crontab文件内容 crontab -l

-r 删除crontab文件内容 crontab -r

-u 管理其他用户的计划任务 crontab -u wangqing -l

注意: crontab {-l -e}实际上就是在操作/var/spool/cron/username

//如何进行计划任务的备份?

crond时间含义

# 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 //星期 # | | | | |# * * * * * command to be executed

// * 表示任意的(分、时、日、月、周)时间都执行// - 表示一个时间范围段, 如5-7点// , 表示分隔时段, 如6,0,4表示周六、日、四// */n 表示每隔n单位时间, 如*/10 每10分钟

crond编写示例

00 02 * * * command

00 02 1 * * command

00 02 14 2 * command

00 02 * * 7 command

00 02 * 6 5 command

00 02 14 * 7 command

00 02 14 2 7 command

00 02 * * * command* 02 * * * command* * * * * command* * 14 2 * command*/5 * * * * command

00 02 * 1,5,8 * command

00 02 1-8 * * command

crond书写规范

//1.为计划任务增加必要的注释

# crontab -l

##time sync

* /5 * * * * /u sr/sbin/ntpdate time1.aliyun.com &》 /dev/ null

//2.规范计划任务执行脚本存放的路径/scripts/

# crontab -l

##backup www to /backup 30 01 * * * /bin/ sh /scripts/www_backup.sh &》 /dev/ null

//3.执行shell脚本任务前加/bin/sh, 脚本结尾加&》/dev/null//调试好后应屏蔽debug输出信息,避免产生系统垃圾占用过多inode, 如需输出日志, 可重定向至日志文件

# crontab -l

####backup www to /backup 30 01 * * * /bin/ sh /scripts/www_backup.sh &》 /tmp/ www_backup.log

# crontab -e

#每天凌晨切割nginx日志 05 00 * * * /bin/bash -x /scripts/cut_nginx.sh &》 /scripts/ log /nginx. log

#每天5点备份数据库 00 05 * * * /bin/bash -x /scripts/dump_sql.sh &》/scripts/ log /mysql. log

//注意: 1. 我们所有的crond服务是运行的程序。而crontab命令用户用来设置定时规则的命令。 2. crond服务是企业生产工作中常用的重要服务,at很少使用,可以忽略。 3. 几乎每个服务器都会用到crond服务。

建议: 将需要定期执行的任务写入脚本中, 建立/scripts目录统一存放脚本, 脚本中命令必须使用绝对路径,手动执行脚本检测输出是否正常, 然后将脚本加入计划任务测试, 测试后无问题将脚本输出写入对应的日志文件中即可。

计划任务添加步骤:

作业:

a. 00 13,20 * 1-5 * backup.sh b. 0 13,20 1,5 * * backup.sh c. * 13,20 * * 1-5 backup.sh d. 00 13,20 * * 1-5 backup.sh

说明以上答案每一行是什么含义

***隐藏网址***

3.新建/backup目录,每周一下午5:50将/backup目录下的所有文件打包成 backup.tar.gz

4.写一个定时任务,每天0点5分把/var/log/nginx下7天前的文件转移到/backup/2018_xx_xx的目录中

5.系统脚本/scripts/which.sh,如何定时每隔7分钟执行一次?

6.如何不小心删除了/var/spool/cron/root文件,该如何恢复。

***隐藏网址***

Linux系统下如何设置计划任务

执行cron任务:具体如下比如当前为root用户#crontab-e进入后文件格式如下分时日月周执行命令比如024***init0*代表每比如每月这行的意思是每月的每天的24点执行init0关机任务文件写完后:wq保存#crontab-l查看任务列表

Linux:crontab要点整理(表达式,转义,权限管理,日志)

摘要: Linux , crontab 整理crontab的使用,包括cron表达式,设置和删除任务,权限管理,查看日志

crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程 每分钟 会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务

使用如下命令进行crontab服务的开启,关闭,重启,和状态查看

其中启动关闭需要root权限,所有用户可以查看状态例如

crontab通过设置cron表达式来让计算机识别如何定时调度任务,cron表达式的基本语法

前五个 * 分别代表 分钟 , 小时 , 当月第几日 , 当年第几月 , 周几 ,最后的 command 是要执行的任务语句,详情和取值范围见下图

其中* 代表所有值,比如以下代表在每年9月27日17点07分执行一个命令,不限制周几

可见crontab最小颗粒度是以 分钟级别 进行调度, 最粗级别是月 ,不限制年,因此 至少每年执行一次 。

在cron表达式中最后一个*代表周几,如果前面的*限死了日期, 且周几这个位置不为*为一个给定值 ,必定可能和周几冲突,当发生冲突时两者为 OR 的关系,即如果时间满足指定的日期,或者时间满足指定的周几,都会执行任务,举个例子

当天为9月27日,星期一,以上两条语句都会被执行,一个在当天的17点13分,一个在当天的17点17分,在/tmp/cron.txt文件中会先后写入两条记录

当周几这个位置设置为*时,无需关注冲突问题,即不对周几做限制

除此之外cron表达式支持一些特征符号配合阿拉伯数字来设置每个*,这样可以实现 或 , 每隔 , 从,到 的逻辑,分别对应三种常用符号 , , / , - ,分别解释如下

分别举几个例子 (1)17点43分和44分执行任务

(2)每隔2分钟执行任务

(3)从52分带56分一直执行任务,一共执行5次

下面来整理一波常用的cron表达式

目前已知的需要转义的是百分号 % ,尤其是在使用日期命令date做日期格式化时,否则无法在crontab中运行,因为%是crontab中的一个有意义的符号,应该这样设置带有百分号的command例如

如果不这样设置,也可以单独写在一个shell脚本中使用bash解释执行也能够正常运行

在当前用户下使用 crontab -e 来添加定时任务,第一次使用会显示no crontab for用户,然后选择一种方式选择输入3回车,如果首次没有设置后期也可以在终端输入 select-editor 进行设置

设置完成之后输入 crontab -e 进入,该方法进入的是当前用户的crontab界面,新起一行即可写入cron表达式进行设置,例如

其中可以使用 # 注释掉某行,则该cron表达式不生效,完成后输入 wq! 进行保存关闭

一种直接的方式是使用 crontab -r ,这种方法删除该用户下所有crontab任务,其他用户的任务不影响都不会被删除,慎用,如果只是要删除其中某一条任务,则直接进入删除这一行即可

任务查看使用 crontab -l 命令,该命令可以查看当前用户的crontab任务

一台linux机器上每个不同用户都有自己的crontab -e文件设置自己的定时任务,这些任务互不干涉运行在一台机器上,其中root用户可以在使用crontab -e的时候可以切换其他用户进行设定,比如

以上语句是在root下给test用户设置定时任务,如果是普通用户则报错没有-u权限

crontab -e是 用户级别 的,设置每个用户的自己的定时任务,/etc/crontab是 系统级别 的,设置系统例行的任务,/etc/crontab只有root用户有读写权限,普通用户只有读权限。 /etc/crontab相比于crontab -e多出环境变量的配置和用户名配置,由root用户统一给各个任务配置用户名,设置的环境变量对/etc/crontab下所有人任务生效,比如修改他的python的搜索路径为anaconda

这个设置只对/etc/crontab有效,对crontab -e的每个用户设置的任务无效 /etc/crontab中设置系统例行的定时任务

表示分别在小时,每天,每周,每月定时执行系统任务,其中 test -x /usr/sbin/anacron 代表条件测试文件是否可执行,如果可执行忽略||后面的命令内容,这种情况下系统走 anacron ,会读取 /etc/anacrontab 下的内容进行替代

可见机器调用 run-parts 命令和 /etc/cron.daily , /etc/cron.weekly , /etc/cron.monthly 执行定时任务

既然linux支持不同用户设置自己的任务,则在一个地方 /var/spool/cron/crontabs 看到所有用户设置的任务,这个目录只有root有权限进入

目录下有三个文件,对应三个用户,root用户对这些文件可读可写,相当于跟crontab -e可以在这设置和修改任务,直接在里面等同于切到某用户执行crontab -e

ubuntu下crontab默认没有日志文件,需要在配置中设置日志文件位置,配置文件位于 /etc/rsyslog.d/50-default.conf 将这一行注释取消

设置后重启rsyslog服务

下面看下一crontab日志的格式

日志中包括 执行时间 , 主机名 , 用户 ,以及 执行的任务信息 ,任务信息包括执行的用户cron的command以及设置crontab的记录,表明在 哪个时间 执行了 哪个用户 的 哪个命令语句 。 其中这两行反应了报错信息

crontab执行脚本时是不会直接错误的信息输出,而是会以邮件的形式发送到你的邮箱里,这时候就需要邮件服务器了,如果你没有安装邮件服务器,它就会报这个错: No MTA installed, discarding output ,解决方案是将错误内容写入文件,比如在command后面添加 》》/var/log/cron.log 2》&1 追加,如果是 》 就是覆盖了,则crontab历史日志每次都会被删除,例如

或者就写入其他目录下

linux下如何查看已有的计划任务

使用crontab -l 即可查看自己的计划任务,做为root用户,如果想查看其他人的计划任务则可以使用-u选项,例如:crontab -l -u linuxprobe 查看linuxprobe用户的计划任务。如果要计划任务的话可以使用-e选项,-e选项也可以配合-u选项来他人的计划任务,你可以去看看《Linux就该这么学》这本书的第四章,有详细关于计划任务的知识。

linux查看是什么操作系统是什么命令

查看操作系统信息的相关命令太多了,下面这个列表算是常用的和查看操作系统相关的命令的合集吧。希望能帮到你!\x0d\x0a# uname -a # 查看内核/操作系统/CPU信息 \x0d\x0a# head -n 1 /etc/issue # 查看操作系统版本 \x0d\x0a# cat /proc/cpuinfo # 查看CPU信息 \x0d\x0a# hostname # 查看计算机名 \x0d\x0a# lspci -tv # 列出所有PCI设备 \x0d\x0a# lsusb -tv # 列出所有USB设备 \x0d\x0a# lsmod # 列出加载的内核模块 \x0d\x0a# env # 查看环境变量资源 \x0d\x0a# free -m # 查看内存使用量和交换区使用量 \x0d\x0a# df -h # 查看各分区使用情况 \x0d\x0a# du -sh 《目录名》 # 查看指定目录的大小 \x0d\x0a# grep MemTotal /proc/meminfo # 查看内存总量 \x0d\x0a# grep MemFree /proc/meminfo # 查看空闲内存量 \x0d\x0a# uptime # 查看系统运行时间、用户数、负载 \x0d\x0a# cat /proc/loadavg # 查看系统负载磁盘和分区 \x0d\x0a# mount | column -t # 查看挂接的分区状态 \x0d\x0a# fdisk -l # 查看所有分区 \x0d\x0a# swapon -s # 查看所有交换分区 \x0d\x0a# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) \x0d\x0a# dmesg | grep IDE # 查看启动时IDE设备检测状况网络 \x0d\x0a# ifconfig # 查看所有网络接口的属性 \x0d\x0a# iptables -L # 查看防火墙设置 \x0d\x0a# route -n # 查看路由表 \x0d\x0a# netstat -lntp # 查看所有监听端口 \x0d\x0a# netstat -antp # 查看所有已经建立的连接 \x0d\x0a# netstat -s # 查看网络统计信息进程 \x0d\x0a# ps -ef # 查看所有进程 \x0d\x0a# top # 实时显示进程状态用户 \x0d\x0a# w # 查看活动用户 \x0d\x0a# id 《用户名》 # 查看指定用户信息 \x0d\x0a# last # 查看用户登录日志 \x0d\x0a# cut -d: -f1 /etc/passwd # 查看系统所有用户 \x0d\x0a# cut -d: -f1 /etc/group # 查看系统所有组 \x0d\x0a# crontab -l # 查看当前用户的计划任务服务 \x0d\x0a# chkconfig _list # 列出所有系统服务 \x0d\x0a# chkconfig _list | grep on # 列出所有启动的系统服务程序 \x0d\x0a# rpm -qa # 查看所有安装的软件包

如何设置linux的计划任务

  根据自己使用的云服务器连接上linux服务器;输入个人账户以及管理员密码,点击“enter”按钮;点击查看正在执行的“crontab”;查询正在执行的任务,在输入框中输入命令“crontabe”;页面中出现任务窗口,点击键盘中的“i”键,进入插入模式;输入自己要执行的任务,的格式为“分时日月周命令”;点击“sure”,保存文件以及所有命令,即把需要执行的文件放置于在服务器上;点击返回主屏幕,设置linux 的计划任务完毕。

Linux设置定时任务

《使用PSSH批量管理Linux》 一文中,已经学习了使用p.sh批量管理linux的技巧。而很多时候,我们需要定时执行一些任务,或者需要定时执行一些批量任务。因此,本文就来研究一下linux设置定时任务的方法。 主要参考 Linux Crontab 定时任务 、 Linux定时任务Crontab命令详解 和 Linux 定时任务详解 。 cron(crond)是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。linux系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。另外,由于使用者自己也可以设置计划任务,所以,linux系统也提供了使用者控制计划任务的命令:crontab命令。 crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。 linux下的任务调度分为两类,系统任务调度和用户任务调度。 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。 /etc/crontab 文件就是系统任务调度的配置文件。 用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在 /var/spool/cron/crontabs/ 目录中,其文件名与用户名一致。 假设我们使用的是Ubuntu14.04.5 Server版,查看 /etc/crontab ,内容为: 第一行SHELL变量指定了系统要使用哪个shell;第二行PATH变量指定了系统执行 命令的路径。 接下来的命令格式为: m h dom mon dow user command 英文全拼为: minute hour day month week user commond 注意, /var/spool/cron 目录中的用户调度任务,没有user一项,因为文件名已经代表了user。 在以上各个字段中,还可以使用以下特殊字符: crontab命令格式为: crontab 设置定时任务和时间紧密相关,如果服务器的时区时间设置和本地不同,就不能保证计划任务的正确执行。所以使用crontab的第一步,是调节好服务器的时间。 下面参考 Ubuntu 16.04将系统时间写入到硬件时间BIOS ,对服务器时间进行调节。 时间是有时区的,无论硬件时间还是操作系统时间。hwclock的时区在/etc/default/rcS文件中设置,里面有一个参数UTC,默认值为yes,表示使用UTC时区,如果设置为no,那表示使用osclock的时区。建议hwclock与osclock设置相同的时区,也就是no。 1、查看服务器硬件时间 sudo hwclock -r ,看到的时间格式为: Wed 23 May 2018 11:02:17 AM HKT -0.031663 seconds 2、查看服务器系统时间 date ,看到的时间格式为: Wed May 23 11:02:41 HKT 2018 3、设置hwclock和osclock时区相同 sudo vim /etc/default/rcS ,找到: 修改为: 4、将系统时间写入硬件时间 sudo hwclock -w 5、修改系统时区 osclock的时区配置文件为/etc/timezone,不建议直接修改配置文件。 如果你想修改为CST时间,那么执行 sudo tzselect 命令时,选择Asia-》China-》Beijing Time即可,这时会提示使用Asia/Shanghai时区。(ubuntu和centos通用) 6、设置即刻生效 执行 date ,发现时区没有变化,依然是HKT。 sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime sudo ntpdate time.windows.com 如果执行ntpdate报错:ntpdate: no server suitable for synchronization found ,那么就换一个时间同步工具。 sudo apt-get install rdate sudo rdate -s time-b.nist.gov 再次执行 date ,发现时区已经变成了CST。 7、硬件时间同步 sudo hwclock -r ,发现硬件时间落后。 sudo hwclock -w ,再次把系统时间写入硬件时间,同步完成。 实例1:每分钟、每小时、每天、每周、每月、每年执行 实例2:每小时的第3和第15分钟执行 3,15 * * * * myCommand 实例3:在上午8点到11点的第3和第15分钟执行 3,15 8-11 * * * myCommand 实例4:每隔两天的上午8点到11点的第3和第15分钟执行 3,15 8-11 */2 * * myCommand 实例5:每周一上午8点到11点的第3和第15分钟执行 3,15 8-11 * * 1 myCommand 实例6:每晚的21:30重启smb 30 21 * * * /etc/init.d/smb restart 实例7:每月1、10、22日的4 : 45重启smb 45 4 1,10,22 * * /etc/init.d/smb restart 实例8:每周六、周日的1 : 10重启smb 10 1 * * 6,0 /etc/init.d/smb restart 实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb 0,30 18-23 * * * /etc/init.d/smb restart 实例10:每星期六的晚上11 : 00 pm重启smb 0 23 * * 6 /etc/init.d/smb restart 实例11:每一小时重启smb 0 * * * * /etc/init.d/smb restart 实例12:晚上11点到早上7点之间,每隔一小时重启smb 0 23-7/1 * * * /etc/init.d/smb restart 实例13:每月的4号与每周一到周三的11点重启smb 0 11 4 * mon-wed /etc/init.d/smb restart 实例14:一月一号的4点重启smb 0 4 1 jan * /etc/init.d/smb restart 实例15:每小时执行/etc/cron.hourly目录内的脚本 01 * * * * root run-parts /etc/cron.hourly run-parts这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是目录名了。 目标:每分钟查看一下ganglia的状态,并保存到/tmp/log/ganglia目录。 1、创建/tmp/log/ganglia目录 sudo mkdir -p /tmp/log/ganglia sudo chmod a+w /tmp/log/ganglia 2、crontab crontab -e ,选择器为vim 3、在crontab文件中添加一行 4、查看crontab任务 crontab -l ,看到任务已经添加成功。 5、等待了五分钟,发现/tmp/log/ganglia目录下啥也没有。 sudo service cron status ,状态正常。 sudo /etc/init.d/cron restart ,重启cron试试。 又等待了五分钟,发现/tmp/log/ganglia目录下依然空空。 莫非是因为pssh没有使用绝对路径? whereis pssh ,找到pssh路径为 /usr/lib/pssh ,修改crontab为: 然而,并没有用。 还是查看下crontab日志吧! 以下主要参考 Ubuntu下用crontab 部署定时任务 。 1、50-default.conf sudo vim /etc/rsyslog.d/50-default.conf 2、把cron前的井号去掉,也就是修改为: 3、重启rsyslog服务 sudo service rsyslog restart 4、重启crontab服务 sudo service cron restart 5、查看crontab日志 less /var/log/cron.log 果然发现了问题: 也就是说,命令确实按时执行了,只不过没有执行完,被百分号截断了,导致log文件没有正常生成! 修改crontab为: 终于,log文件成功生成,nice!但是,文件内容是空的!因为, /usr/lib/pssh 是一个目录,不是pssh命令!真正的pssh命令是parallel-ssh,找到它的位置为 /usr/bin/parallel-ssh ,修改crontab: 至此,问题圆满解决。 实际使用的时候,一天获取一次ganglia的状态就够了,所以crontab改成: 以上,每天执行一次定时任务,抓取ganglia的运行状态保存到日志文件中。紧接着,我们的目标是使用脚本检查当天的日志文件,如果发现ganglia运行异常,则产生一个错误日志。 1、假设日志文件ganglia-20180524.log的内容为: 2、参考 grep命令最经常使用的功能总结 ,编写脚本checkganglia.sh 3、执行 chmod a+x checkganglia.sh ./checkganglia.sh 如果所有客户机的ganglia运行正常,就会输出All services are runing!。如果有的客户机ganglia进程不存在,则会在/tmp/log/ganglia/目录下生成当天的错误日志。 4、设置定时运行 因为日志的检查工作要在日志生成之后,所以时间上延后十分钟。 上面的脚本,还有很多要改进的地方。比如有的客户机宕机了,上面的脚本检查不出来。比如有的客户机ganglia服务没有启动,那么具体是哪几台?针对这两个问题,下面进行改进。假设已经知道客户机的数量为10。 参考 csplit命令 ,checkganglia.sh脚本修改为: 以上脚本,实现了当客户机数量不为10的时候,进行报错;当客户机ganglia服务没有启动时,进行报错,并且筛选出所有没有启动ganglia的客户机。 本文中,我们先学习了crontab的基础知识和基本用法。然后通过监控ganglia这一个应用场景来具体学习crontab的详细使用方法,包括查看cron日志的方法,crontab中命令转义的方法,定时执行脚本的方法,以及审阅日志脚本的编写和进阶。 至此,还不够完美,因为我们需要每天登录管理机查看有没有错误日志。下一篇 Linux设置邮件提醒 中,我们将会研究linux设置邮件提醒的方法。审阅完日志后,如果脚本能够给我们发送一封邮件,告知我们审阅的结果,那么我们就不必再每天查看错误日志。

如果你还想了解更多这方面的信息,记得收藏关注本站。