思想
1.先输入
2.先命令行操作
3.拷贝命令到定时任务编辑里
suid小结
针对用户 属主
重点要记 图
sgid权限知识 和suid都是提权
1sgid既可针对文件也可针对目录
2它针对用户组 属组 ,跟suid基本相同
通过sgid 让不同普通用户,也拥有组权限,
配制环境
echo "echo oldboylinux">/bin/oldboyedu
chmod +x /bin/oldboyedu
locate oldboyedu
yum install mlocate -y
updatedb
图
粘滞键sticky bit
设置个目录 ,大家都能增删改,但不能动/tmp
文件所属特殊情况
userdel 删除用户
userdel -r inca
groupdel 删除用户组
groupdel -g 506 tech
第12章重点
1linux基本9位权限之文件和目录权限
2linux基本9位权限之字符和数字(8进制)权限知识
3权限及用户组悟性修改命令chmod\chown\chgrp
4默认权限umask以及系统目录安全案例
5特殊权限suid知识掌握 sgid sticky了解
定时任务:周期性的执行任务计划的软件
1、cron(d)介绍
1、什么是cron 它是定时任务软件
2、为什么要使用crond定时任务 白天系统忙,备份只能晚上执行
3、不同系统的定时任务
1. windows 附件定时的开关机
2.linux系统定时任务软件
at定时任务软件
cron定时任务软件依赖于crond服务
anacron定时任务软件主用非7*24小时
3.linux系统定时任务crond
例:ll /var/log/secure*
作用:可以测每天每时按你需求执行一项工作
如备份 不可能时时去备份吧,所以需要定时任务帮你执行
怎样用
系统定时任务
1.管理员不用干预,系统自动执行
2.也可以利用任务为管理员服务
cat /etc/logrotate.conf 日志切割
按天切割日志 就可以用logrotate
/etc/cron.daily/logrotate
/etc/logrotate.conf
用户定时任务
1、caon是定时任务软件名
2、crond服务进程名,真正实现定时任务
想要配置定时任务,着先启动crond服务
systemctl status crond.service 查看服务状态
systemctl stop crond.service 关服务状态
systemctl start crond.service 开服务状态
开机自启
systemctl disable crond.service
systemctl enable crond.service
3、crondtab命令 是用来设置定时任务规则的配置命令
-l 列表 查看地已经设置的定时任务 等于 cat /var/spool/cron/root
-e 编辑定时任务 等于 vim/var/spool/cron/root
图
-u 查看特定使用执行任务
-i 删除定时任务,有提示
-r 删除定时任务,不提示
存放内容位置 以当前用户名作为名 放这 /var/spool/cron/
以当前用户名作为文件名
sar查看系统cpu命令
3、定时任务语法
提示符#
第一列 分(0-59)minute
第二列 时(0-23)hour
第三列 日(1-31)day of month
第四列 月(1-12)month
第五列 周(0-7)总八个字0 7都是周天
第六列执行的任务命令
特殊符号
* 每
- 分隔,连续时间范围几至几
,列举 分隔时段7,8,9,表示789都有
/n 每过n(时间)执行
大象放冰箱
同步时间命令
题2 yum install ntpdate -y安装时间服务软件
/usr/sbin/ntpdate ntp.aliyun.com更新互联网时间
&>/dev/null 黑洞设备
题 echo "oldboy">>/tmp/oldboy.log 第一步确认命令是否成功
cat /tmp/oldboy.log 第二步查看命令是否成功
crontab -e 第三编辑命令 直接复制进去
* * * * * echo "oldboy">>/tmp/oldboy.log &>/dev/null第四步
tail -f /tmp/oldboy.log 追踪任务
实例
30 */6 * * * /bin/sh /scripts/oldboy.sh每6个半小时执行一次
30 8-18/2 * * * /bin/sh /scripts/oldboy.sh 每6个半小时执行一次
问题
范例13-3:每天晚上0点,把站点目录/var/www/html下的内容打包备份到/data目录下,并且要求每次生成不同的备份包名。
至少分三步:
1.命令行稿成功
准备工作:
[root@oldboyedu ~]# mkdir /var/www/html /data -p
具体命令:
[root@oldboyedu ~]# tar zcvf /data/html_$(date +%F).tar.gz /var/www/html/
tar: Removing leading `/' from member names
/var/www/html/
[root@oldboyedu ~]# ll /data
total 4
-rw-r--r-- 1 root root 117 Mar 22 11:59 html_2019-03-22.tar.gz
2、编写定时任务
[root@oldboyedu ~]# crontab -l
00 00 * * * tar zcvf /data/html_$(date +%F).tar.gz /var/www/html/
错了,不执行。。。。
看报错日志。。。错误日志
定时任务没有执行,出错了日志在哪里?
出错日志/var/log/cron
Mar 22 12:03:01 oldboyedu CROND[18770]: (root) CMD (tar zcvf /data/html_$(date +)
定时任务对%的要求,百分号要转义。\%
正确答案:
[root@oldboyedu ~]# crontab -l
00 00 * * * tar zcvf /data/html_$(date +\%F).tar.gz /var/www/html/
优秀的答案(企业里):
1.命令行执行
cd /var/www
tar zcf /data/html_$(date +%F).tar.gz ./html
2.尽量用脚本文件实现
#mkdir /server/scripts -p #存放脚本的文件
cd /server/scripts
#cat bak.sh
cd /var/www
tar zcf /data/html_$(date +%F).tar.gz ./html
命令行执行:
/bin/sh /server/scripts/bak.sh
3、编辑定时任务
#bak html dir by oldboy at 2020108
00 00 * * * /bin/sh /server/scripts/bak.sh &>/dev/null
[root@oldboyedu /server/scripts]# crontab -l|tail -2
#bak html dir by oldboy at 2020108
00 00 * * * /bin/sh /server/scripts/bak.sh &>/dev/null
4、检查正式结果
[root@oldboyedu /server/scripts]# ls -l /data
运维规范
脚本位置:server/scripts
软件位置/server/tools
编译位置:/application/软件名字-版本,然后制作软链接
生产环境下的定时Cron书写要领
要领1:为定时任务规则加必要的注释
要领2:所有的定时任务尽量都以脚本的形式执行
要领3:在执行的Shell脚本前加上/bin/sh
要领4:定时任务中命令或脚本的结尾加>/dev/null 2>&1
要领5:在指定用户下执行相关定时任务
要领6:生产任务计划程序中不要随意打印输出信息,有输出的想法去掉。
要领7:定时任务执行的脚本要存放到规范路径下
要领8:配置定时任务要规范操作过程,减少出错
要领9:定时任务脚本中程序命令及路径尽量用全路径
要领10:时间变量%号要用反斜线转义(只有定时任务里是命令时需要)
要领11:若脚本中调用了系统环境变量,要重新定义
要领12:出错或无法执行,就检查/var/log/cron日志
同步时间命令