课堂笔记day17

思想

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日志


同步时间命令

你可能感兴趣的:(课堂笔记day17)