centos 6 cron centos8哪个版本稳定
今天给各位分享centos 6 cron的知识,其中也会对centos8哪个版本稳定进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
centos 查看系统有哪些用户
保留、维护和分析日志(如某个特定时期内发生过的,或正在发生的帐号事件),是Linux系统管理员最基础和最重要的任务之一。对于用户管理,检查用户的登入和登出日志(不管是失败的,还是成功的)可以让我们对任何潜在的安全隐患或未经授权使用系统的情况保持警惕。例如,工作时间之外或放假期间的来自未知IP地址或帐号的远程登录应当发出红色警报。在CentOS系统上,用户登录历史存储在以下这些文件中:/var/run/utmp(用于记录当前打开的会话)被who和w工具用来记录当前有谁登录以及他们正在做什么,而uptime用来记录系统启动时间。/var/log/wtmp(用于存储系统连接历史记录)被last工具用来记录最后登录的用户的列表。/var/log/btmp(记录失败的登录尝试)被lastb工具用来记录最后失败的登录尝试的列表。在本文中,我将介绍如何使用utmpdump,这个小程序来自sysvinit-tools包,可以用于转储二进制日志文件到文本格式的文件以便检查。此工具默认在CentOS 6和7系列上可用。utmpdump收集到的信息比先前提到过的工具的输出要更全面,这让它成为一个胜任该工作的很不错的工具。除此之外,utmpdump可以用于修改utmp或wtmp。如果你想要修复二进制日志中的任何损坏条目,它会很有用(LCTT译注:我怎么觉得这像是做坏事的前奏?)。 Utmpdump的使用及其输出说明正如我们之前提到的,这些日志文件,与我们大多数人熟悉的其它日志相比(如/var/log/messages,/var/log/cron,/var/log/maillog),是以二进制格式存储的,因而我们不能使用像less或more这样的文件命令来查看它们的内容。所以,utmpdump的出现拯救了世界。为了要显示/var/run/utmp的内容,请运行以下命令:代码如下:# utmpdump/var/run/utmp同样要显示/var/log/wtmp的内容:代码如下:# utmpdump/var/log/wtmp tail-15[code]最后,对于/var/log/btmp: [code]# utmpdump/var/log/btmp正如你所能看到的,三种情况下的输出结果是一样的,除了utmp和btmp的记录是按时间排序,而wtmp的顺序是颠倒的这个原因外(LCTT译注:此处原文有误,实际上都是按照时间顺序排列的)。每个日志行格式化成了多列,说明如下。第一个字段显示了会话识别符,而第二个字段则是PID。第三个字段可以是以下值:--(表示运行等级改变或系统重启),bw(启动守候进程),数字(表示TTY编号),或者字符和数字(表示伪终端)。第四个字段可以为空或用户名、重启或运行级别。第五个字段是主TTY或PTY(伪终端),如果此信息可获得的话。第六个字段是远程主机名(如果是本地登录,该字段为空,运行级别信息除外,它会返回内核版本)。第七个字段是远程系统的IP地址(如果是本地登录,该字段为0.0.0.0)。如果没有提供DNS解析,第六和第七字段会显示相同的信息(远程系统的IP地址)。最后一个(第八)字段指明了该记录创建的日期和时间。 Utmpdump使用样例下面提供了一些utmpdump的简单使用情况。 1、检查8月18日到9月17日之间某个特定用户(如gacanepa)的登录次数。代码如下:# utmpdump/var/log/wtmp grep gacanepa如果你需要回顾先前日期的登录信息,你可以检查/var/log下的wtmp-YYYYMMDD(或wtmp.[1...N])和btmp-YYYYMMDD(或btmp.[1...N])文件,这些是由logrotate生成的旧wtmp和btmp的归档文件。 2、统计来自IP地址192.168.0.101的登录次数。代码如下:# utmpdump/var/log/wtmp grep 192.168.0.101 3、显示失败的登录尝试。代码如下:# utmpdump/var/log/btmp在/var/log/btmp输出中,每个日志行都与一个失败的登录尝试相关(如使用不正确的密码,或者一个不存在的用户ID)。上面图片中高亮部分显示了使用不存在的用户ID登录,这警告你有人尝试猜测常用帐号名来闯入系统。这在使用tty1的情况下是个极其严重的问题,因为这意味着某人对你机器上的终端具有访问权限(该检查一下谁拿到了进入你数据中心的钥匙了,也许吧?) 4、显示每个用户会话的登入和登出信息代码如下:# utmpdump/var/log/wtmp在/var/logwtmp中,一次新的登录事件的特征是,第一个字段为‘7’,第三个字段是一个终端编号(或伪终端id),第四个字段为用户名。相关的登出事件会在第一个字段显示‘8’,第二个字段显示与登录一样的PID,而终端编号字段空白。例如,仔细观察上面图片中PID 1463的行。在 [Fri Sep 19 11:57:40 2014 ART],TTY1上显示登录提示符。在 [Fri Sep 19 12:04:21 2014 ART],用户 root登入。在 [Fri Sep 19 12:07:24 2014 ART],用户 root登出。旁注:第四个字段的LOGIN意味着出现了一次登录到第五字段指定的终端的提示。到目前为止,我介绍一些有点琐碎的例子。你可以将utmpdump和其它一些文本处理工具,如awk、sed、grep或cut组合,来产生过滤和加强的输出。例如,你可以使用以下命令来列出某个特定用户(如gacanepa)的所有登录事件,并发送输出结果到.csv文件,它可以用像LibreOffice Calc或Microsoft Excel之类的文字或工作簿应用程序打开查看。让我们只显示PID、用户名、IP地址和时间戳:代码如下:# utmpdump/var/log/wtmp grep-E"[7].*gacanepa" awk-v OFS=","'BEGIN{FS="]"};{print$2,$4,$7,$8}' sed-e's/[//g'-e's/]//g'就像上面图片中三个高亮区域描绘的那样,过滤逻辑操作是由三个管道步骤组成的。第一步用于查找由用户gacanepa触发的登录事件([7]);第二步和第三部用于选择期望的字段,移除utmpdump输出的方括号并设置输出字段分隔符为逗号。当然,如果你想要在以后打开来看,你需要重定向上面的命令输出到文件(添加“>[文件名].csv”到命令后面)。在更为复杂的例子中,如果你想要知道在特定时间内哪些用户(在/etc/passwd中列出)没有登录,你可以从/etc/passwd中提取用户名,然后运行grep命令来获取/var/log/wtmp输出中对应用户的列表。就像你看到的那样,有着无限可能。在进行总结之前,让我们简要地展示一下utmpdump的另外一种使用情况:修改utmp或wtmp。由于这些都是二进制日志文件,你不能像编辑文件一样来编辑它们。取而代之是,你可以将其内容输出成为文本格式,并修改文本输出内容,然后将修改后的内容导入回二进制日志中。如下:代码如下:# utmpdump/var/log/utmp> tmp_output<使用文本编辑器修改 tmp_output># utmpdump-r tmp_output>/var/log/utmp这在你想要移除或修复二进制日志中的任何伪造条目时很有用。下面小结一下,utmpdump从utmp、wtmp和btmp日志文件或轮循的旧归档文件来读取详细的登录事件,来补充如who,w,uptime,last,lastb之类的标准工具的不足,这也使得它成为一个很棒的工具。
CentOS下CronTab任务周期计划详解
CronTab任务周期计划
格式:
***** command
分(0-59)、时(0-23)、日(1-31)、月(1-12)、周(0-6)
说明:
1、星号可以匹配所有字符
2、一个整数、必须精确匹配
3、用短划线隔开的两个整数,它们匹配的是值的范围。
4、时间范围后加斜扛和一个步长值。1-10/2
普通用户流程:
crontab-e crontab是设置了setuid的,所以用户具有他的权限也就是root,并会在/tmp/cron....文件处理后保存在/var/spool/cron/$username中。
日志:
/var/log/cron
配置目录:
/var/run/crond.pid进程号地址
/etc/crontab使用指导文件
/etc/$weekday.等分别时日月周的目录,即可以把脚本放进去他会按时执行。
/etc/cron.{deny,allow}拒绝和允许用户使用crontab
Vixie-Cron:
centos安装时会默认安装此包,此包可以包括一个步长值。也就是如1,3,6,9,12可以写成,1-12/3除以3。所谓的*/1*/2也就是每一分钟每两分钟运行command。即1-59/{2,3}。
%号的运用:
%百分号表示command中的换行,只有第一个百分号之前的文本才包含在实际命令中,其余的行则作为该命令的标准输入。
安装:
yum install-y crontabs
使用:
crontab--help
crontab-e#检出一个crontab副本,调用vi编辑它,并重新保存在crontab目录。
crontab-l#将crontab的内容打印到标准输出。
crontab-r#册除并不留任何内容。
......
root册除其它用户。
crontab-r$username
[root@nagios~]# 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)
-e(edit user's crontab)
-l(list user's crontab)
-r(delete user's crontab)
-i(prompt before deleting user's crontab)
-s(selinux context)
[root@nagios~]# ll/usr/bin/crontab
-rwsr-xr-x 1 root root 47520 Jul 19 2011/usr/bin/crontab
[root@nagios~]# cat/var/run/crond.pid
2074
[root@nagios~]# ll/etc/|grep-E cron
drwxr-xr-x 2 root root 4096 Apr 2 00:59 cron.d
drwxr-xr-x. 2 root root 4096 Sep 27 2011 cron.daily
-rw-r--r-- 1 root root 0 Jul 19 2011 cron.deny
drwxr-xr-x 2 root root 4096 Sep 27 2011 cron.hourly
drwxr-xr-x 2 root root 4096 Sep 27 2011 cron.monthly
-rw-r--r-- 1 root root 457 Sep 27 2011 crontab
drwxr-xr-x 2 root root 4096 Sep 27 2011 cron.weekly
[root@nagios~]# 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
[root@nagios~]# ll/var/spool/cron/
total 8
-rw------- 1 root root 60 Apr 2 01:33 root
-rw------- 1 zwhset zwhset 68 Apr 2 01:51 zwhset
[root@nagios~]# tail-5/var/log/cron
Apr 2 17:24:01 nagios CROND[20544]:(root) CMD(/bin/sh~/hello)
Apr 2 17:25:01 nagios CROND[20549]:(root) CMD(/bin/sh~/hello)
Apr 2 17:25:01 nagios CROND[20550]:(root) CMD(/bin/sh~/hello)
Apr 2 17:25:01 nagios CROND[20551]:(zwhset) CMD(echo hello~/1.txt)
Apr 2 17:25:01 nagios CROND[20552]:(zwhset) CMD(echo hello~/1.txt)
[root@nagios~]# ps aux|grep cron
root 2074 0.0 0.5 117212 1316? Ss 01:40 0:04 crond
root 20641 0.0 0.6 139684 1468 pts/1 S+ 17:30 0:00 crontab-e
zwhset 20642 0.0 0.7 119284 1756 pts/1 S+ 17:30 0:00/bin/vi/tmp/crontab.YphQpH
root 20663 0.0 0.3 103236 856 pts/0 S+ 17:31 0:00 grep cron
[root@nagios~]# lsof-c crontab
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
crontab 20641 root cwd DIR 253,0 4096 130818/root
crontab 20641 root rtd DIR 253,0 4096 2/
crontab 20641 root txt REG 253,0 47520 401259/usr/bin/crontab
crontab 20641 root mem REG 253,0 5952 261889/lib64/security/pam_deny.so
crontab 20641 root mem REG 253,0 18592 261891/lib64/security/pam_env.so
crontab 20641 root mem REG 253,0 18592 261903/lib64/security/pam_limits.so
crontab 20641 root mem REG 253,0 10224 261901/lib64/security/pam_keyinit.so
crontab 20641 root mem REG 253,0 10240 261906/lib64/security/pam_loginuid.so
crontab 20641 root mem REG 253,0 6040 261912/lib64/security/pam_permit.so
crontab 20641 root mem REG 253,0 14384 261923/lib64/security/pam_succeed_if.so
crontab 20641 root mem REG 253,0 10200 261905/lib64/security/pam_localuser.so
crontab 20641 root mem REG 253,0 51952 261929/lib64/security/pam_unix.so
crontab 20641 root mem REG 253,0 113432 261657/lib64/libnsl-2.12.so
crontab 20641 root mem REG 253,0 14456 261884/lib64/security/pam_access.so
crontab 20641 root mem REG 253,0 65928 261663/lib64/libnss_files-2.12.so
crontab 20641 root mem REG 253,0 99158576 397021/usr/lib/locale/locale-archive
crontab 20641 root mem REG 253,0 383504 261640/lib64/libfreebl3.so
crontab 20641 root mem REG 253,0 40400 261651/lib64/libcrypt-2.12.so
crontab 20641 root mem REG 253,0 1916568 261647/lib64/libc-2.12.so
crontab 20641 root mem REG 253,0 113096 261709/lib64/libaudit.so.1.0.0
crontab 20641 root mem REG 253,0 19536 261653/lib64/libdl-2.12.so
crontab 20641 root mem REG 253,0 55848 261879/lib64/libpam.so.0.82.2
crontab 20641 root mem REG 253,0 122040 261718/lib64/libselinux.so.1
crontab 20641 root mem REG 253,0 154464 261636/lib64/ld-2.12.so
crontab 20641 root 0u CHR 136,1 0t0 4/dev/pts/1
crontab 20641 root 1u CHR 136,1 0t0 4/dev/pts/1
crontab 20641 root 2u CHR 136,1 0t0 4/dev/pts/1
crontab 20641 root 3u unix 0xffff88000225c380 0t0 91831 socket
crontab 20641 root 5u REG 253,0 68 916745/tmp/crontab.YphQpH
Linux中cron命令的用法详解
linux中有一个命令可以定期来执行系统任务。这就是crond服务。下面介绍下crontab命令的用法。
linux任务调度的工作主要分为以下两类:
编辑/etc/crontab文件配置cron
cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用 crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
crontab是UNIX系统下的定时任务触发器,其使用者的权限记载在下列两个文件中:
文件含义
/etc/cron.deny该文件中所列的用户不允许使用crontab命令
/etc/cron.allow该文件中所列的用户允许使用crontab命令
/var/spool/cron/是所有用户的crontab文件
crontab命令的格式为:crontab–l|-r|-e|-i [username],其参数含义如表一:
参数名称含义示例
-l显示用户的crontab文件的内容 crontab–l
-i删除用户的crontab文件前给提示 crontab-ri
-r从crontab目录中删除用户的crontab文件 crontab-r
-e编辑用户的Crontab文件 crontab-e
用户所建立的crontab文件存于/var/spool/cron中,其文件名与用户名一致。
它的格式共分为六段,前五段为时间设定段,第六段为所要执行的命令段,
格式如下:*****
其时间段的含义如表二:
段含义范围
第一段代表分钟 0—59
第二段代表小时 0—23
第三段代表日期 1—31
第四段代表月份 1—12
第五段代表星期几,0代表星期日 0—6
例:如果用户的Crontab文件的内容是:29 19*** echo its dinner time,则系统每天的19:29显示‘its dinner time’
示例(创建一个cron全过程,每分钟都会在test.txt里输入当前时间):
1、以普通用户登录Linux系统(我用的是CentOS4.1)
2、
代码如下:
$crontab–e
说明:系统默认的编辑器是VIM,如果不是请加上以下shell:
代码如下:
$EDITOR=vi
$export EDITOR
3、输入
代码如下:
*/1**** date$HOME/test.txt”,save and exit VIM
4、
代码如下:
$su root
5、
代码如下:
$cd/etc/init.d
6、
代码如下:
./crond restart
下面看看看几个具体的例子:
0*/2***/sbin/service httpd restart意思是每两个小时重启一次apache
50 7***/sbin/service sshd start意思是每天7:50开启ssh服务
50 22***/sbin/service sshd stop意思是每天22:50关闭ssh服务
0 0 1,15** fsck/home每月1号和15号检查/home磁盘
1****/home/bruce/backup每小时的第一分执行/home/bruce/backup这个文件
00 03** 1-5 find/home"*.xxx"-mtime+4-exec rm{};每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
30 6*/10** ls意思是每月的1、11、21、31日是的6:30执行一次ls命令
晚上11点到早上8点之间每两个小时,早上八点
0 23-7/2,8*** echo"Have a good dream:)"/tmp/test.txt
7、编辑cron的配置文件/etc/crontab,如下:
代码如下:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root//如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=///使用者运行的路径,这里是根目录
# run-parts
01**** root run-parts/etc/cron.hourly//每小时执行/etc/cron.hourly内的脚本
02 4*** root run-parts/etc/cron.daily//每天执行/etc/cron.daily内的脚本
22 4** 0 root run-parts/etc/cron.weekly//每星期执行/etc/cron.weekly内的脚本
42 4 1** root run-parts/etc/cron.monthly//每月去执行/etc/cron.monthly内的脚本
大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
8、如果某 cron任务需要根据调度来执行,而不是每小时、每日、每周、或每月地执行,它可以被添加到/etc/cron.d目录中。该目录中的所有文件使用和/etc/crontab中一样的语法。
代码如下:
# record the memory usage of the system every monday
# at 3:30AM in the file/tmp/meminfo
30 3** mon cat/proc/meminfo/tmp/meminfo
# run custom script the first day of every month at 4:10AM
10 4 1**/root/scripts/backup.sh
9、快速调度任务
我们已经非常熟悉使用cron守护进程执行一个计划命令。
Cron是一个Linux系统管理的高级命令,用于计划定时任务如备份或者指定时间或间隔的任何事情。
但是,你是否知道at命令可以让你在指定时间调度一个任务或者命令?at命令可以指定时间执行指定内容。
例如,你打算在早上11点2分执行uptime命令,你只需要这样做:
代码如下:
$ at 11:02
uptime/home/$USER/uptime.txt
Ctrl+D
检查at命令是否成功设置,使用:
代码如下:
$ at-l
at支持计划多个命令,例如:
代码如下:
$ at 12:30
Command– 1
Command– 2
…
command– 50
…
Ctrl+ D