一、计划任务

简介:
作用:计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据。
分类:

  • 一次性调度执行 at
  • 循环调度执行 cron

1、一次性调度执行 at

(1)安装
yum -y install at
systemctl status atd    #查看启动状态
systemctl start atd		#首先要启动服务
(2)语法

使用格式:

at +时间

查看计划任务:

at -l
atq

查看计划任务内容:

at -c jobid

删除计划任务:

atrm jobid

创建计划任务:

at 时间
ctrl d -->保存

(3)特殊写法

at 20:00 2018-10-1   	 在某天
at now +10min         	 在 10 分钟后执行
at 17:00 tomorrow 		 明天下午 5 点执行
at 6:00 pm +3 days 		 在 3 天以后的下午 6 点执行
at 23:00 < a.txt

2、循环调度执行cron

(1)简介

cron的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和Linux的操作系统之中。用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放 /etc/crontab 文件中,以供之后读取和执行。

  • /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
  • /etc/crontab 这个文件负责调度各种管理和维护任务。
  • /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
  • 我们还可以把脚本放在/etc/cron.hourly/etc/cron.daily/etc/cron.weekly/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。
(2)安装
安装软件
    [root@qfedu.com ~]#  yum -y install crontabs  

启动服务
   
    rhel7:
    [root@qfedu.com ~]#  systemctl start crond.service
    [root@qfedu.com ~]#  systemctl status crond.service
    [root@qfedu.com ~]#  systemctl enable crond.service

查看服务状态
[root@linux-server ~]# ps -ef | grep crond
(3)常用命令
crontab -e      //创建计划
crontab -l      //查询计划
crontab -r     //删除计划
crontab -u     //设定某个用户的cron服务,一般root用户
(4)使用者权限文件
文件:
/etc/cron.deny
说明:
该文件中所列用户不允许使用crontab命令

文件:
/etc/cron.allow
说明:
该文件中所列用户允许使用crontab命令

系统本身的计划任务
/etc/crontab
(5)编辑语法

cron -e 编辑时的语法:

centos7计划任务每分钟 linux系统计划任务_运维开发

分为7个字段:分 时 日 月 周 用户 命令

  • 分:0-59取值
  • 时:0-23取值,24点即使0点
  • 日:1-31取值
  • 月:1-12取值,或者直接月份的英文单词
  • 周:0-6取值,0或者7表示星期天

特殊符号的含义:

  • *:任意/每
  • /:指定时间的间隔频率;*/10=每隔十分钟(位于分字段);0-23/2=每隔两小时
  • -:代表从某个数字到某个数字:8-17=8号到17号(日字段)
  • ,:分开几个离散的数字:6,10-13,20=6号,10号到13号,20号(日字段)
(6)示例

1、每月1、10、22日的4:45重启network服务

45 4 1,10,22 * * /usr/bin/systemctl restart network

2、每周六、周日的1:10重启network服务

10 1 * * 6,7 /usr/bin/systemctl restart network

3、每天18:00至23:00之间每隔30分钟重启network服务

*/30 18-23 * * * /usr/bin/systemctl restart network

4、每隔两天的上午8点到11点的第3和第15分钟执行一次重启

3,15 8-11 */2 * * /usr/sbin/reboot

5、每周日凌晨2点30分,运行cp命令对/etc/fstab文件进行备份,存储位置为/backup/fstab-YYYY-MM-DD-hh-mm-ss;

30 2 * * 7 /usr/bin/cp /etc/fstab /tmp/fstab-`date “+\%F_\%T”`

6、一月一号的4点重启smb

0 4 1 1 * /usr/bin/systemctl restart smb   #4点钟只执行一次命令,正确答案;
* 4 1 1 * /usr/bin/systemctl restart smb   #四点到五点执行了60次命令,错误答案:

7、晚上11点到早上7点之间,每隔一小时重启smb

0 23-0/1,1-7/1 * * * /usr/bin/systemctl restart smb
0 23,0,1,2,3,4,5,6,7  * * * /usr/bin/systemctl restart smb

8、每一小时重启smb

0 * * * * /usr/bin/systemctl restart smb

二、日志管理

centos7计划任务每分钟 linux系统计划任务_centos_02

1、日志服务 rsyslog

(1)简介

系统日志:进程和操作系统内核需要能够为发生的事件记录日志,这些日志可用于系统审核和问题的故障排除,一般这些日志永久存储在 /var/log 目录中。

(2)系统常用的日志

日志

Value

/var/log/messages

大多数系统日志信息记录在此处

/var/log/secure

安全和身份认证相关的消息和错误的日志文件

/var/log/maillog

邮件服务器相关的日志文件

/var/log/cron

定时任务相关的日志文件

/var/log/boot.log

系统启动有关的日志文件

/var/log/dmesg

与系统启动相关

/var/log/yum.log

与yum的日志

/var/log/xferlog

与访问FTP服务器相关

扩展

[root@linux-server ~]# w				   #当前登录的用户 /var/log/wtmp
[root@linux-server ~]# last				   #最近登录的用户 /var/log/btmp
第一列,用户名;
第二列,终端位置,/pts/0 (伪终端)意味着从诸如ssh或者telnet的远程链接的用户,tty(teletypewriter)意味着直接连接到计算机或者本地链接的用户;
第三列,登录的ip或者内核。
第四列,开始时间;
第五列,结束时间(still login in 还未退出 down 直到正常关机 crash 直到强制关机);

[root@linux-server ~]# lastlog			   #所有用户的登录情况 /var/log/lastlog
(3)主配置文件

命令:

vim /etc/rsyslog.conf

centos7计划任务每分钟 linux系统计划任务_centos_03

配置文件格式:

服务名称[连接符号]日志等级 日志记录位置

其中:

服务名称为系统安装的服务的名称,多个服务名称如果使用同一等级,可用逗号分隔

两个规则之间(主要用于排除情况),使用分号分隔,详见样例

连接符号在下面给出,日志等级也在下面给出。

  • 日志服务管理的主要服务名称

日志类型

说明

auth

pam产生的日志(系统登录认证)

authpriv

ssh、ftp等登录信息的验证信息(系统服务认证)

cron

时间任务相关(定时任务)

kern

内核

lpr

打印

mail

邮件

mark(syslog)-rsyslog

服务内部的信息,时间标识

news

新闻组

user

用户程序产生的相关信息

uucp

unix to unix copy,unix主机之间的相关通信

local 1-7

自定义的日志设备

  • 日志等级分类

日志级别

说明

debug

有调试信息的,日志信息最多

info

一般信息的日志,最常用

notice

具有重要性的普通条件的信息

warning

警告级别

err

错误级别,阻止某个功能或者模块不能正常工作的信息

crit

严重级别,阻止整个系统或者整个软件不能正常工作的信息

alert

需要立刻修改的信息

emerg

内核崩溃等严重信息

none

什么都不记录

另外,.none表示不记录日志,一般在排除情况下使用

  • 日志服务配置文件的连接符

连接符

说明

*

代表所有用户等级

.

等级比后面给出的日志等级高(包含)的会记录

.=

等级与后面给出的相等的

.!

等级与后面给出的不等的

日志记录位置不只是文件绝对路径,有以下方式

日志记录位置

样例说明

绝对文件路径

/var/log/messages

系统设备文件

/dev/lp0 (使用打印机输出)

转发给远程主机

@192.168.0.2:123

用户名

root 或*(表示所有用户)

忽略日志(不记录)

~

注:"@"表示udp协议发送,“”@@“”表示tcp协议发送

  • 配置实例
auth,authpriv.*                 /var/log/auth.log #逗号分隔表示两个服务同样等级,都为所有
*.*;auth,authpriv.none          -/var/log/syslog #所有服务的所有信息,但排除了上面两个服务

2、日志轮转 logrotate

(1)简介

当日志数量越来越庞大时会占用很多硬盘空间,并且当一个日志文件很大的时候打开就会非常缓慢,为了解决这个问题,可以将日志文件进行切割,比如说按天将日志文件划分为几个小日志文件;或者把日志进行轮换,保留十天二十天的日志即可,超过阈值的日志就将其删掉,腾出空间存储新的日志。

logrotate 配置文件:

  • 主配置文件:/etc/logrotate.conf (决定每个日志文件如何轮转)
  • 子配置文件:/etc/logrotate.d/*
(2)主配置文件

centos7计划任务每分钟 linux系统计划任务_centos_04

  • weekly:按周轮转,一周轮转
  • rotate 4:保留4份
  • create:轮转后创建新文件
  • dateext:使用日期为文件后缀
  • compress:是否压缩
  • include:包含该目录下的子配置文件

centos7计划任务每分钟 linux系统计划任务_centos7计划任务每分钟_05

  • missingok //丢失不提示
  • monthly //每月轮转一次
  • create 0600 root utmp //轮转后创建新文件,并设置权限
  • rotate 1 //保留一份

centos7计划任务每分钟 linux系统计划任务_centos_06

  • monthly //一月轮转一次
  • create 0664 root utmp //轮转后创建新文件,设置权限,属主,属组
  • minsize 1M //最小达到1M轮转
  • rotate 1 //保留一份
(3)参数

参数

说明

daily

按日轮替

weekly

按天轮替

monthly

按月轮替

rotate n

n为数字,为保留的日志文件的个数,0指不备份

compress

对旧的日志进行压缩

create [mode] [owner] [group]

建立新日志的权限模式,所有者和所属组,如create 0640 root adm

3、日志的远程同步

作用:便于管理多台主机

步骤:

1.在日志发送方:
vim /etc/rsyslog.conf
*.*       @172.25.254.109        
##"@"表示udp协议发送,“”@@“”表示tcp协议发送
systemctl restart rsyslog.server

2.在日志接收方:
vim /etc/rsyslog.conf 
15 $ModLoad imudp                ##日志接收模块
16 $UDPServerRun 514            ##开启接收端口
systemctl restart rsyslog.server
systemctl stop firewalld          ##关闭火墙
systemctl disable firewalld       ##设定火墙开启关闭

3、发送方和接收方均清空日志文件,使用命令:
> /var/log/message 

4、测试:在日志的发送方运行:
logger test  ------> cat /var/log/message   ;完成之后,会产生日志信息
在接受方运行:cat /var/log/message ;

4、日志采集格式的设定

作用:从发送方同步过来的日志,不利于我们查看相关信息;所以要接收方采集的日志按我们自己的设定的规则来显示

设定步骤:

vim   /etc/rsyslog.conf 
$template  LOGFMT,"%timegenerated%  %FROMHOST-IP%  %syslogtag%  %msg%\n"

在自己显示的日志文件后面,把格式添加进去:
*.*/var/log/westos;LOGFMT

注释:

  • %timegenerated%   显示日志时间
  • %FROMHOST-IP%  显示主机IP
  • %syslogtag%     日志记录目标
  • %msg%       日志内容
  • \n          换行

5、日志时间同步

作用:让多台虚拟机保持时间的一致。

服务名称:chronyd

步骤:(在两台虚拟机下进行)

(1)在服务端配置:vim  /etc/chronyd
22行 allow  172.25.254.0/24    ## 允许ip为172.25.254.0、子网掩码为24的主机同步时间
28行 local stratum 10     ##表示不同步其他时间
systemctl  restart  chronyd   

(2)在客户端配置:vim  /etc/chronyd
2-5行留下一行:server  172.25.254.97    ##表示要同步的主机为172.25.254.97
systemctl restart  chrond             ## 重启服务

systemctl stop  firewalld             ## 关闭防火墙

(3)测试:在客户端输入:chronyc  sources -v
若结果为如下,则表示同步成功:
注意:在做此实验前,两边的时间是不相同的(可以使用date查看);服务器端和客户端要关闭防火墙,这样可以进行数据的同步;

文件配置之后要重启。

6、相关命令

yum install rsyslog logrotate           // 安装程序(logrotate 日志切割)
systemctl start rsyslog.service         //启动程序 
rpm -qc rsyslog                         //列出配置文件(/etc下的文件) 会列出conf文件的位置   
/etc/logrotate.d/syslog                 //日志轮转相关
/etc/rsyslog.conf                       //主配置文件
/etc/sysconfig/rsyslog                  //定义级别

三、远程管理服务 ssh

  • openssh-service 提供服务
  • openssh-clients 客户端
  • sshd服务的端口号----22

1、安装

yum install -y openssh*
systemctl  start  sshd

注意:关闭防火墙和selinux

2、登录方式

(1)远程登录
[root@linux-server ~]# ssh root@192.168.246.114

参数解释:

  • root 用户默认不写为root,也可以使用其他用户
(2)无密码登陆(ssh密钥认证)
1.产生公钥和私钥:  生成一对密钥:公钥+私钥
[root@linux-server ~]# ssh-keygen  #一直回车
2.查看钥匙的目录:
[root@linux-server ~]# cd /root/.ssh/
id_rsa      ---私钥
id_rsa.pub  ---公钥
known_hosts ----确认过公钥指纹的可信服务器列表的文件
authorized_keys ---授权文件,是传输过公钥到对方服务后会自动重命名生成的
3.拷贝公钥给对方机器:
[root@linux-server ~]# ssh-copy-id 对方机器ip地址
ip地址:指的是对方服务器
4.远程连接的时候就不用输入密码了

3、修改端口号

修改配置文件:
# vim /etc/ssh/sshd_config
17 #Port 22   #将注释去掉,修改端口号可以修改为自定义的。
[root@linux-server ~]# systemctl restart sshd

远程登录
-p:prot端口,指定端口,如果端口修改了需要指定
案例:
[root@linux-server ~]# ssh root@192.168.246.158 -p 2222

(4)远程拷贝

远程拷贝:
scp  -P 端口号 /a.txt    ip:/路径
               源文件      目标地址

[root@linux-server ~]# scp -r -P 2222 test/ 192.168.246.158:/root/
谁是远程加谁ip
远程拷贝目标机器改了端口加-(大)P 
目录加 -r