美文网首页
day17课后笔记

day17课后笔记

作者: 藏鋒1013 | 来源:发表于2019-03-22 16:42 被阅读0次

suid核心知识小结:

1)suid功能是针对二进制命令或程序的,不能用在Shell等类似脚本文件上。

2)用户或属主对应的前三位权限的x位上,如果有s(S)就表示具备suid权限。

3)suid的作用就是让普通用户可以在执行某个设置了suid位的命令或程序时,拥有和命令对应属主(一般为root管理员)一样的身份和权限(默认)。

4)二进制命令程序需要有可执行权限x配合才行。

5)suid对应的身份和权限在程序命令执行过程中有效。

6)suid是一把双刃剑,是一个比较危险的功能,对系统安全有一定的威胁,企业里用户授权可以使用sudo等替代sgid 功能。

7)在进行安全优化时,系统中默认设置了suid权限的命令要取消掉。

sgid作用之一:

sgid的作用就是让普通用户可以在执行某个设置了sgid位的命令时,

拥有和命令对应用户组(一般为root用户组)一样的身份和权限(默认)。

locate搜索内容,默认从updatedb对应的数据库中查找

updatedb 更新locate查找内容对应的数据库。

sgid基于目录的作用:

让不同的人创建文件属于相同的用户组,从而可以互相共享文件的权限。

Linux系统定时任务:

1、什么是定时任务?

周期性的执行任务计划的软件,在Linux中定时任务的常用软件crond。

2、使用定时任务软件,可以每天,每小时按你需求重复的执行一项工作。

例如:备份  都是0点以后,2点爬起来备份,四点以后睡觉。

需要写一个程序实现自动备份,然后让定时任务软件帮你执行。

闹钟。。。可以追女朋友。。。

3、怎样用。

(1)系统定时任务计划

1.不用管理员干预,系统自动运行。

2.也可以利用系统任务为管理员服务。

(2)用户定时任务计划

在Linux系统中,

cron是定时任务的软件名

crond是服务进程名

crontab命令是用来设定定时任务规则的配置命令

要想配置定时任务,首先启动crond服务。

systemctl start crond.service

systemctl stop crond.service

systemctl status crond.service

开启自启动:

                    systemctl disable crond.service

                    systemctl enable crond.service

crontab命令

内容存放哪里了。定时任务内容存放的位置

以当前用户名作为用户名 /var/spool/cron

        -l    l列表  查看已经设置的定时任务命令*

        -e edit 编辑定时任务*

       -u user 查看特定用户下的定时任务

root:

crontab -l == cat /var/spool/cron/root

crontab -e == vim /var/spool/cron/root

编写定时任务的语法:

共六列:

第一列:分 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

第六列:要执行的任务命令或程序

特殊符号:

* 表示的 每或每一 的意思

00 23 * * * cmd

- 连续区间 1-10

00 8-23 * * * cmd

, 列举 1,2,3,4,8

00 1,2,3,4,8 * * * cmd

/n n是数字。

n代表自然数字,即“每隔n单位时间”,例如:每10分钟执行一次任务可以写成

*/10 * * * * cmd

实践:

1、每分钟追加一次oldboy字符串到/tmp/oldboy.log里。

解答:大象放冰箱分三步

a.命令行执行成功。

[root@oldboyedu ~]# echo "oldboy">>/tmp/oldboy.log

[root@oldboyedu ~]# cat /tmp/oldboy.log

oldboy

[root@oldboyedu ~]# echo "oldboy">>/tmp/oldboy.log

[root@oldboyedu ~]# cat /tmp/oldboy.log

oldboy

oldboy

b.配置定时任务crontab -e 编辑配置

[root@oldboyedu ~]# crontab -l

#####

* * * * * echo "oldboy">>/tmp/oldboy.log

c.检查

[root@oldboyedu ~]# tail -f /tmp/oldboy.log

oldboy

oldboy

oldboy

老男孩思想:

1)先输入* * * * *

2)先命令行操作成功。

3)拷贝命令到定时任务编辑里。

让服务器时间每5分钟和互联网时间做一次同步。

安装时间服务软件:yum install ntpdate -y

更新互联网时间 /usr/sbin/ntpdate ntp1.aliyun.com

/dev/null 黑洞设备

MH370>/dev/null

&>/dev/null 等价>/dev/null 2>&1

[root@oldboyedu ~]# crontab -l

*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null

每天晚上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 #存放脚本的文件

运维规范:

脚本位置:/server/scripts

软件位置:/server/tools

编译位置:/application/软件名字-版本,然后要软链接。

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

生产环境下的定时Cron书写要领

要领1:为定时任务罪责加必要的注释

要领2:所有的定时任务尽量都要以脚本的形式执行

要领3:在执行Shell脚本前加上/bin/sh

要领4:定时任务中命令或脚本的结尾加>/dev/null  2>&1

要领5:在指定用户下执行相关定时任务

要领6:生产任务计划程序中不要随意打印输出信息,有输出的想法去掉

要领7:定时任务执行的脚本要存放在规范路径下

要领8:配置定时任务时要规范操作过程,减少出错

要领9:定时任务脚本中程序命令

要领10:时间变量%号要用反斜线转义(只有定时任务里是命令时需要)

要领11:若文本中调用了系统环境变量,要重新定时

要领12: 出错或无法执行,就检查/var/log/cron日志

相关文章

网友评论

      本文标题:day17课后笔记

      本文链接:https://www.haomeiwen.com/subject/hailvqtx.html