一、计划任务
简介:
作用:计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据。
分类:
- 一次性调度执行 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
编辑时的语法:
分为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
二、日志管理
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
配置文件格式:
服务名称[连接符号]日志等级 日志记录位置
其中:
服务名称为系统安装的服务的名称,多个服务名称如果使用同一等级,可用逗号分隔
两个规则之间(主要用于排除情况),使用分号分隔,详见样例
连接符号在下面给出,日志等级也在下面给出。
- 日志服务管理的主要服务名称
日志类型 | 说明 |
---|---|
auth | pam产生的日志(系统登录认证) |
authpriv | ssh、ftp等登录信息的验证信息(系统服务认证) |
cron | 时间任务相关(定时任务) |
kern | 内核 |
lpr | 打印 |
邮件 | |
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)主配置文件
-
weekly:按周轮转,一周轮转
-
rotate 4:保留4份
-
create:轮转后创建新文件
-
dateext:使用日期为文件后缀
-
compress:是否压缩
-
include:包含该目录下的子配置文件
- missingok //丢失不提示
- monthly //每月轮转一次
- create 0600 root utmp //轮转后创建新文件,并设置权限
- rotate 1 //保留一份
-
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