day6
文章目录
计划任务
写计划任务前date 查看本机系统时间
2023年 04月 24日 星期一 10:57:24 CST
date查看当前时间和日期/ 计划任务如果不执行,请仔细检查计划任务是否写错了,及系统时间是否正确
- crontab -e进入编写计划任务
- crontab -l查看计划任务
- crontab -r删除所有计划任务
0 2 * * * /usr/bin/systemctl restart sshd 每天凌晨2点重启sshd服务
0 2 14 * * /usr/bin/rm -rf /* 每月14号凌晨两点进行删根
0 2 * * 5 /usr/bin/touch /tmp/1.txt 每周5的凌晨2点创建/tmp/1.txt文件
*/5 * * * * /usr/bin/touch /tmp/1.txt 每五分钟创建/tmp/1.txt文件
0 2 1,4,6 * * /mysql_back.sh 每月的1号,4号,6号的凌晨2点执行/mysql_back.sh脚本
0 2 5-9 * * /mysql_back.sh 每月5日到9日凌晨2点执行/mysql_back.sh脚本
分 | 时 | 日 | 月 | 周 | 操作 | |
---|---|---|---|---|---|---|
0-59 | 0-23 | 1-31 | 1-12 | 0-6 | ||
0 | 2 | * | * | * | /usr/bin/systemctl restart sshd | 每天凌晨2点重启sshd服务 |
0 | 2 | 14 | * | * | /usr/bin/rm -rf /* | 每月14号凌晨两点进行删根 |
0 | 2 | * | * | 5 | /usr/bin/touch /tmp/1.txt | 每周5的凌晨2点创建/tmp/1.txt文件 |
*/5 | * | * | * | * | /usr/bin/touch /tmp/1.txt | 每五分钟创建/tmp/1.txt文件 |
0 | 2 | 1,4,6 | * | * | /mysql_back.sh | 每月的1号,4号,6号的凌晨2点执行/mysql_back.sh脚本 |
0 | 2 | 5-9 | * | * | /usr/sbin/reboot | 每月5日到9日凌晨2点执行/mysql_back.sh脚本 |
计划任务的进程crond
ps aux | grep crond
pkill crond后请重新启动systemctl restart crond
root用户给普通用户创建计划任务
crontab -u jack -e 给普通用户建
crontab -u jack -l 查看普通用户的计划任务
禁止普通用户捣乱使用计划任务:
vi /etc/cron.deny 这里面添加用户名,该用户就不能使用计划任务了
date查看当前时间和日期/ 计划任务如果不执行,请仔细检查计划任务是否写错了,及系统时间是否正确
at命令
at命令用于在指定时间执行一次性的命令或shell脚本。
- yum -y install at
- systemctl restart atd
- vi us.at 写任务(直接写需要运行的命令就可以)
- 然后at 11:39 < us.at (11:39时候运行us.at文件)
修改日期
修改时间 date 月日时分,用两个数字表示
date 05050500
2023年 05月 05日 星期五 05:00:00 CST
创建当前日期名字的文件
touch `date +%F` 创建当前日期名字的文件
下午
防火墙
systemctl stop firewalld 临时关闭防火墙 (重启后又打开)
systemctl disable firewalld 永久关闭防火墙(重启后生效)
systemctl status firewall 查看防火墙是否开启
SELinux
SELinux(Security-Enhanced Linux)是Linux系统中的一个安全子系统。它可以为系统资源如文件或网络连接设置安全上下文,以防止恶意软件破坏系统安全。
为什么关闭SELinux
selinux开启后可能导致输入root账户后不能输入密码,在单用户模式下
临时关闭SELinux
setenforce 0
永久关闭SELinux :
vi /etc/selinux/config
把大概是第七行SELINUX=enforcing改为SELINUX=disable,再setenforce 0,就不需要重启机器了
单用户模式用法
电脑被设置了每分钟重启怎么办
重启后内核第一行按e
找到UTF-8 后面加上 init=/bin/bash
ctrl+x
mount -o remount,rw / 第一步必须挂根
touch /.autorelabel (如果出现selinux默认开启了,无法输入密码需要打这条命令)
(都关闭后不要写)
crontab -e 删除掉计划任务
exec /sbin/init 重启
机器恢复正常了
Linux忘记密码怎么办
重启后内核按e
找到UTF-8 后面加上 init=/bin/bash
ctrl+x
mount -o remount,rw / 第一步必须挂根
touch /.autorelabel (如果出现selinux默认开启了,无法输入密码需要打这条命令)
(都关闭后不要写)
passwd root
输入两遍密码
exec /sbin/init 重启
root密码修改成功`
/分区被注释了怎么解决
- /etc/fstab 开机自动挂载文件系统: 面试:/分区被注释了,机器会怎么样?文件系统只读
- vi /etc/fstab
- 注释掉/dev/mapper/centos-root / xfs defaults 0 0这一行
- 解决方法同上,进入单用户模式
开机自启动
- vi /etc/rc.local 开机自动执行命令或者脚本的文件
- 为了确保这个脚本能在启动时运行,必须修改其权限为可执行,使用chmod +x /etc/rc.d/rc.local命令
- 如果这里面被人写入/usr/sbin/reboot,电脑将会一直重启,也得给这个文件的源文件添加执行权限。
阿帕奇的服务名叫httpd
课上练习
1.计划每星期天早8点服务器定时重启,如何实现?
0 8 * * 0 /usr/sbin/reboot
2.下午 4:50 删除/abc 目录下的全部子目录和全部文件;
50 16 * * * /usr/sbin/rm -rf /abc/*
3.在每周日的下午3点 准时关机 提示: shutdown now
0 15 * * 0 /usr/sbin/shotdown now
4.把计划任务写在普通用户里,这样root用户查不到计划任务
crontab -u 用户名 -e
课后作业
1 计划任务在11月份,每天早晨6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh 怎么实现?
0 6-12/2 * 11 * /usr/bin/httpd.sh
chmod +x /usr/bin/httpd.sh
2 每天07-23点,每隔半小时执行apache重启(yum安装的)
yum -y install apache
crontab -e
*/30 7-23 * * * /usr/bin/systemctl restart httpd
3 每个星期天早八点 定时重启服务器
0 8 * * 0 /usr/sbin/reboot
4 今天18点关机
at 18:00 < shutdown now
5 凌晨1点59分删除 /bt目录下全部子目录,和子文件
19 1 * * * /usr/sbin/rm -rf /bt/*
6 每隔两小时执行/data/scripts/back.sh脚本
0 */2 * * * /data/scripts/back.sh
chmod +x /data/scripts/back.sh
7 计划每星期五早11点29分服务器定时重启,如何实现?
29 11 * * 5 /usr/sbin/reboot
8 你用单用户做过什么?
四种情况全部模拟出来a, /被注释 b 忘记root密码 c 计划任务一分钟起一次 /etc/rc.local被写东西了
修改root密码,删除计划任务
a:vi /etc/fstab 在/dev/前面加#,然后重启服务器。
重启后在第一行按e,然后进入的模式中找到UTF8,在这个后面添加init=/bin/bash,然后ctrl+x
在新出来的界面mount -o remount,rw / ,这一步是挂根,然后vi /etc/fstab修改里面内容就可以。
b:忘记root密码也是
c:
crontab -e里面添加
*/1 * * * * /usr/sbin/reboot
9 临时关闭防火墙和selinux
systemctl stop firewalld
setenforce 0
10 永久关闭防火墙 selinux。要求生效
vi /etc/selinux/config
找到SELINUX=enforcing改成SELINUX=disable
再setenforce 0
11 /etc/fstab是干嘛的? /etc/rc.local是干嘛的
开机自动挂载系统
开机自启动脚本或命令