单一执行的例行性工作
单一执行的例行性工作:仅处理执行一次就结束了
at命令的工作过程
/etc/at.allow,写在该文件的人可以使用at命令
/etc/at.deny,黑名单
两个文件如果都不存在,只能使用有root
#at工作调度对应的系统服务
[root@localhost ~]# systemctl status atd
#at的工作文件存放目录
[root@localhost ~]# ll /var/spool/at
#at工作的日志文件
[root@localhost ~]# ll /var/log/cron
at命令详解
参数:
-m 当任务完成之后,即使没有标准输出,将给用户发送邮件
-l atq的别名,可列出目前系统上面的所有该用户的at调度
-d atrm的别名,可以取消一个在at调度中的工作
-v 使用较明显的时间格式,列出at调度中的任务列表
-c 可以列出后面接的该项工作的实际命令内容
-f 从文件中读取作作业
时间格式:
HH:MM 在今天的HH小时MM分钟执行,如果今天的这个时间点已经过了,则明
天执行
HH:MM YYYY-MM-DD 强制规定在某年某月的某一天的特殊时刻进行该工作
now + 2 minutes 从现在开始几分钟minutes, hours, days, or weeks#定义三分钟之后显示hello
[root@server ~]# at now + 3 minutes
循环执行的例行性工作(定时执行任务)
循环执行的例行性工作:每隔一定的周期就需要执行一次
crontab的工作过程
/etc/cron.allow,写在该文件的人可以使用crontab命令
/etc/cron.deny,黑名单
两个文件如果都不存在,只有root能使用
#crontab工作调度对应的系统服务
[root@localhost ~]# systemctl status crond
#crontab工作的日志文件
[root@localhost ~]# ll /var/log/cron
#用户定义计划任务的文件所在目录
[root@localhost ~]# ll /var/spool/cron/
crontab命令详解
[root@localhost ~]# crontab --help
crontab: invalid option -- '-'
crontab: usage error: unrecognized option
Usage:
crontab [options] file
crontab [options]
crontab -n [hostname]
Options:
-u <user> define user
-e edit user's crontab
-l list user's crontab
-r delete user's crontab
-i prompt before deleting
-n <host> set host in cluster to run users' crontabs
-c get host in cluster to run users' crontabs
-s selinux context
-V print version and exit
-x <mask> enable debugging
crontab计划任务的时间格式:
crontab计划任务的时间格式中的特殊符号:
注:%在crontab里面有特殊含义,如果有命令里面需要使用%,需要使用\转义。
注意:
注:wall命令用于向系统当前所有打开的终端上输出信息。 通过wall命令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall命令会从标准输入设备读取数据,然后再把所得到的数据传送给所有终端机用户。
系统的计划任务
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# 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
使用场景
- 系统维护:自动执行定期的系统维护任务,如清理临时文件、更新系统、备份重要数据等。
- 日志管理:定时轮转日志文件,压缩历史日志,以及删除过期的日志文件来控制磁盘空间的使用。
- 软件更新:自动检查和安装软件更新,确保系统和应用程序都是最新的。
- 数据库备份:按照预定的时间间隔自动备份数据库,减少数据丢失的风险。
- 监控警报:设置定时检查系统资源使用情况,如 CPU、内存和磁盘空间,并在超过阈值时发送警告。
- 定时报告:生成定期的报告,如每小时或每天的流量报告、性能报告等,并自动发送给相关人员。
- 计划任务执行:运行定时脚本,例如每天晚上执行数据整理或处理任务。
- 网站内容更新:对于需要定期发布内容的网站建设,可以使用 Crontab 定时发布文章或更新网页内容。
- 邮件发送:定时发送新闻通讯或提醒邮件给用户。
- 批处理作业:在非高峰时间自动执行资源密集型的批处理作业,以优化资源使用。
- 安全扫描:定期进行系统安全扫描,检查潜在的安全漏洞和恶意软件。
- 定时关机或重启:在特定时间或在完成一系列任务后自动关闭或重启系统。
- 文件同步:自动同步本地文件夹与远程服务器上的文件夹,保持数据的一致性。
- 数据抓取:定时从网站上抓取数据,进行数据分析或填充数据库
实验:搭建FTP文件共享服务器
一、实验目的及要求
1、掌握vsftpd服务器的配置方法。
2、熟悉FTP客户端工具的使用。
3、掌握常见的FTP服务器的故障排除。
二、实验项目背景
某企业想构建一台FTP服务器,为企业局域网中的计算机提供文件传送任 务, 等属性, 为财务部门、销售部门和OA系统提供异地数据备份。 要求能够对FTP服务器设置连接限制、 日志记录、消息、验证客户端身份 并能创建用户隔离的FTP站点。
三、实验的环境
1、Window系统版本: Windows 10 或者 Window11 系统;
2、VMware软件版本: VMware® Workstation 17 Pro ;
3、Linux 系统版本: Red Hat Enterprise Linux 9.3 64 位
四、实验方法和步骤
安装ftp服务器
离线安装:rpm -ivh vsftpd-1.1.3-8.i386.rpm
在线安装:yum install vsftpd
卸载程序:yum remove vsftpd
修改配置文件,匿名账户具有访问 查看共享目录的权限
cd /etc/vsftpd 进入vsftp的配置目录
cp vsftpd.conf vsftpd.conf_bak 将原始配置文件备份
vim /etc/vsftpd/vsftpd.conf 修改配置文 件
将以下配置改为yes
anonymous_enable=YES # 允许匿名用户访问
anon_upload_enable=YES # 允许匿名用户上传控制
anon_mkdir_write_enable=YES # 允许匿名用户创建目录
修改本地上传目录的权限
cd /var/ftp/pub
mkdir /var/ftp/pub/upload
chmod 777 /var/ftp/pub/upload -R
chmod 777 /var/ftp/pub -R
重启FTP服务
systemctl restart vsftpd.service
systemctl status vsftpd.service
测试
在win10 的地址栏输入: ftp:// xxxx.xxxx.xxxx.xxxx
可以看到默认的共享文件 pub。
如果无法访问,权限不足
关闭 SELinux
setenforce 0 getenfoce 查看是否关闭
Permissive 是关闭状态
或者:
vim /etc/sysconfig/-selinux
将 SELINUX=enforcing 改为 SELINUX=disabled 然后重启
关闭 防火墙
systemctl stop firewalld 关闭防火墙
systemctl status firewalled
systemctl disable firewalld 关闭防火墙开机启动
客户端操作
ftp客户端操作命令:
1、ftp 192.168.42.128 ,默认账号:ftp 密码: ftp
2、dir 查看目录内容
3、cd xxx 切换目录
4、get xxx.txt 下载文件
5、put xxx.txt 上传文件
6、by 退出环境
虚拟用户访问
建立认证文件模板
vim /etc/vsftpd/ftp_auth_file
注:我们写了3个虚拟用户和密码,注意写的时候注意后面的空格, 在这里空格也是会被计算在内的。
加密认证文件
然后我们把写出的文件,转换成系统可识别的认证文件
db_load -T -t hash -f /etc/vsftpd/ftp_auth_file /etc/vsftpd/ftp_auth_file.db
ls cd /etc/vsftpd/\
>
cat /etc/vsftpd/ftp_auth_file.db
转换出的就是一串加密字符
建立pam认证文件
pam是我们系统中的一个插件程序,用来确认配对信息, 例如我们用
ftp登录主机用户获取信息是, 需要先输入用户名,然后输入密码才可以
进入, 可以来查看pam的配置目录里的文件内容。
ls /etc/pam.d/
在pam.d目录里是有vsftp的认证文件的,文件内容我们列出来了,所以
我们建立的虚拟用户也 需要建立这样的认证文件才可以让别人访问 建立
文件 vim /etc/pam.d/test ,test这个文件名可以自定义
account required pam_userdb.so db=/etc/vsftpd/ftp_auth_file
auth required pam_userdb.so db=/etc/vsftpd/ftp_auth_file
我们来分析一下这个文件内容: account:账户 auth:认证,也就是密码 required:必须通过,强制认证 pam_userdb.so:pam的插件名称 db=/etc/vsftpd/ftp_auth_file:指定pam插件认证的文件,注意的是我们刚转换的格式 ftp_auth_file.db,但是这里默认找的就是后缀为 .db 的文件,所以不需要 加 .db
编辑vsftp主配置文件
vim /etc/vsftpd/vsftpd.conf
可以查看/etc/passwd里的内容找到
重启服务
systemctl restart vsftpd
测试登录
用另外一台主机进行登录测试