计划任务
一次调度执行-----at
安装:
[root@agiao ~]# yum -y install at
启动:
[root@agiao ~]# systemctl start atd
开机自启动:
[root@agiao ~]# systemctl enbale atd
语法:
at <时间规格>
teatime 下午4点
noon 中午12点
midnight 午夜12点
tomorrow 明天
at now [min|hour|day|month|year|week]
at [teatime|16:00|4pm] [tomorrow|+1day]
CTRL D 保存
at 3pm 下午三点
at now +1week 从现在开始1个星期以后
at 12:00 2024-10-01
at 3pm < a.txt 下午三点执行a.txt里的内容
查询:
[root@agiao ~]# atq
删除:
[root@agiao ~]# atrm ID
循环调度执行cron 用户级
分 时 日 月 周
* * * * * 计划
#分钟 小时 日 月 周
#[0-59] [0-23] [1-31] [1-12] [0-7] 0 7 周日
每月最后一天 L
/ 每
, 不同时间段
- 时间范围
写入计划
[root@localhost ~]#crontab -e
查看计划
[root@agiao ~]# crontab -l
备份计划任务c
[root@agiao ~]# rontab -l >> /tmp/cron.log
具体产看计划
[root@agiao ~]# vim /etc/crontab
日志轮转
类型
系统日志 应用日志
审计日志 诊断日志
日志系统rsyslog
Linux系统日志对管理员来说,是了解系统运行的主要途径,因此需要对 Linux 日志系统有个详细的了解。
Linux 系统内核和许多程序会产生各种错误信息、告警信息和其他的提示信息,这些各种信息都应该记录到日志文件中,完成这个过程的程序就是 rsyslog,rsyslog 可以根据日志的类别和优先级将日志保存到不同的文件中
处理日志的进程
rsyslogd:绝大部分日志记录,和系统操作有关,安全,认证sshd,su,计划任务at,cron... httpd/nginx/mysql: 可以自己的方式记录日志
[root@agiao ~]# ps aux |grep rsyslogd
日志配置主文件:
/etc/rsyslog.conf
常见的日志文件(系统、进程、应用程序
tail -f /var/log/messages #动态查看日志文件的尾部,系统主日志文件
tail -f /var/log/secure #记录认证、安全的日志
tail /var/log/maillog #跟邮件postfix相关
tail /var/log/cron #crond、at进程产生的日志
tail /var/log/dmesg #和系统启动相关
tail /var/log/yum.log #yum的日志
tail -f /var/log/mysqld.log #MySQL日志
tail /var/log/xferlog #和访问FTP服务器相关
/var/log/boot.log #系统启动过程日志记录存放
日志优先级
7种日志级别代号0-7
0 debug #有调试信息的,日志信息最多
1 info #一般信息的日志,最常用
2 notice #最具有重要性的普通条件的信息
常见3 warning #警告级别
常见4 err #错误级别,阻止某个功能或者模块不能正常工作的信息
常见5 crit #严重级别,阻止整个系统或者整个软件不能工作的信息
6 alert #需要立刻修改的信息
7 emerg #内核崩溃等严重信息
none #什么都不记录
logrotate日志轮转
什么是日志轮转?
1. 如果没有日志轮转,日志文件会越来越大
2. 将丢弃系统中最旧的日志文件,以节省空间
3. logrotate本身不是系统守护进程,它是通过计划任务crond每天执行
主配置文件:
/etc/logrotate.conf (决定每个日志文件如何轮转)
配置日志轮转
[root@agiao ~]# /var/log/日志名{
#daily weekly monthly yearly
prerotate
chattr -a /var/log/日志名
endscript
daily
create 0644 root root
compress
rotate 5
postrotate
chattr +a /var/log/日志名
endscript
}
手动轮转
[root@agiao ~]# logrotate -f /var/log/日志名 -f 强制手动轮转
参数解析
# 指定日志的位置
/var/log/日志名{
# 在日志轮转前要做的事
prerotate
# 取消隐藏权限a
chattr -a /var/log/newbee
# 结束脚本
endscript
# weekly daily monthly yearly
# 以日期为后缀
dateext
# 轮转周期为 1天
daily
# 保留5份日志
rotate 5
# 设置属主属组 权限
create 0644 root root
# 设置压缩
compress
# 轮转之后要做的事情
postrotate
# 再次添加a权限
chattr +a /var/log/newbee
# 结束脚本
endscript
}
ssh远程管理服务
给服务器配置秘钥
什么是ssh
SSH是一种加密的网络协议,用于在不安全的网络中安全地传输数据。它允许用户通过一个安全的通道连接到远程计算机,并在该通道上执行各种网络服务,例如远程登录和文件传输。
SSH使用公钥加密技术来验证远程计算机的身份,并使用对称加密技术来保护数据传输的机密性
telnet与ssh的区别:
telnet:不安全,没有对传输数据进行加密,容易被监听,还有遭受中间人攻击,telnet不能压缩传输数据,所以传输慢
ssh:对数据进行了加密,安全度高,ssh传输数据经过压缩,所以传输速度比较快
一.配置秘钥
1.进入linux系统里家目录的.ssh目录下
root用户是/root/.ssh,普通用户是/home/您的用户名/.ssh,我们以root用户为例:
cd .ssh
#如果没有 自己创建 权限700
2.执行ssh-keygen命令创建密钥对
[root@agiao ~]# ssh-keygen -t rsa -b 2048
###### -b 参数,指定了长度,也可以不加-b参数,直接使用ssh-keygen -t rsa
执行密钥生成命令,基本上是一路回车既可以了,但是需要注意的是:执行命令的过程中是会提示呢输入密钥的密码的,不需要密码直接回车就行。
密钥生成后会在当前目录下多出两个文件,id_rsa和id_rsa.pub,其中id_rsa是私钥(敲黑板:这个很重要,不能外泄),id_rsa.pub这个是公钥
3.创建 authorized_keys 权限为600
[root@agiao ~]# chomd 600 authorized_keys
4.将 [公钥]累加到此文件authorized_keys 中
[root@agiao ~]# cat id_rsa.pub >> authorized_keys
5.修改/etc/ssh/sshd_config
配制文件,修改以下内容
- RSAAuthtication yes
- PubkeyAuthentication yes 公钥认证
- PasswordAuthentication no 关闭密码输入
重启
[root@agiao ~]# systemctl restart sshd
6.服务器中开放端口
背景说明
Centos 系统默认 ssh 连接端口是 22 ,在一些特定的条件中,22 端口被禁用或者被屏蔽,因而无法使用 22 端口进行 ssh 连接,此时把 22 端口映射为其他端口进行 ssh 连接、访问。
二.安装ssh客户端连接
1.将id_rsa 私钥下载到本地
- 把生成的 /root/.ssh/id_rsa 文件下载到本地电脑
修改端口以后远程连接
修改端口以后远程连接 -p 端口名 远程拷贝-P 端口名
免密互信
1.生成密钥对后
[root@agiao ~]# ssh-copy-id 对方ip 直接远程登录
改主机名
[root@agiao ~]# hostnamectl set-hostname 新名称
[root@agiao ~]# bash
查看主机名
[root@agiao ~]# hostname
主机名解析
[root@agiao ~]# vim /etc/hosts
ip+主机名
tcppwrapper访问限制
[root@agiao ~]# vim /etc/hosts.allw
sshd:IP地址
[root@agiao ~]# vim /etc/hosts.deny
sshd:IP地址 |ALL
远程拷贝
送
[root@agiao ~]# scp 文件名 对方登录系统的用户名@对方ip地址:目标位置
拿
[root@agiao ~]# scp 对方登录系统的用户名@对方ip地址:目标位置名称 自己计算机的目标路径