课堂笔记day17(sgid、系统定时任务以及定时任务操作规范)
作者:
劉歓 | 来源:发表于
2019-03-22 19:02 被阅读0次
1.sgid的作用就是让普通用户可以在执行某个设置了sgid位的命令时,拥有和命令对应用户组(一般为root用户组)一样的身份和权限(默认)。
2.locate搜索内容,默认从updatedb对应的数据库中查找,updatedb更新locate查找内容对应的数据库。
3.sgid基于目录的作用:让不同的人创建文件属于相同的用户组,从而可以互相共享文件的权限。
4.Linux系统定时任务:
a、定时任务是周期性的执行任务计划的软件,linux定时任务的常用软件crond
b、使用定时任务软件,可以每天,每小时按你需求重复的执行一项工作
5.系统定时任务计划
a、不用管理员干预,系统自动执行
b、也可以利用系统任务为管理员服务
[root@oldboy ~]# ll /var/log/messages*
[root@oldboy ~]# ll /var/log/secure*
[root@oldboyedu /etc/cron.daily]# ll /etc/cron.daily/logrotate /etc/logrotate.conf
6.用户定时任务计划:
在linux系统中,cron是定时任务的软件名;crond是服务进程名,真正实现定时任务服务;crontab命令是用来设置定时任务规则的配置命令
要想配置定时任务,首先启动crond服务:
ststemctl start crond.service(开启)
systemctl stop crond.service(关闭)
systemctl status crond.service(查看)
开启自启动:
ststemctl disable crond.service(关闭)
systemctl enable crond.service(开启)
7.crontab命令是用来设置定时任务规则的配置命令(定时任务内容存放的位置是/var/spool/cron)
ll /var/spool/cron/(查看已经设置的定时任务)
-l l列表 查看已经设置的定时任务*
-e edit 编辑定时任务*
-u user 查看特定用户下定时任务
crontab -l == cat /var/spool/cron/root
crontab -e == vim /var/spool/cron/root
8.编写定时任务的语法:
8.1# 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
# | | | | |
# * * * * * (command to be executed)
8.2共六列:
第一列:分 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
第六列:要执行的任务命令或程序
8.3特殊符号:
* 表示的 每或每一 的意思(例如:00 23 * * * 表示每天的23点执行定时任务)
- 连续区间 1-10(例如:00 8-23 * * * 表示每天的8点到23点每个一个小时执行一次定时任务)
, 列举 1,2,3,4,8(例如:00 1,2,3,4,8 * * * 表示每天的1,2,3,4,8执行定时任务 )
/n n是数字(n代表自然数字,即“每隔n单位时间”,例如:*/10 * * * * 表示每10分钟执行一次任务可以写成)
9.生产环境下的定时Cron书写要领
要领1:为定时任务规则加必要的注释
要领2:所有的定时任务尽量都以脚本的形式执行
要领3:在执行的Shell脚本前加上/bin/sh
要领4:定时任务中命令或脚本的结尾加>/dev/null 2>&1
要领5:在指定用户下执行相关定时任务
要领6:生产任务计划程序中不要随意打印输出信息,有输出的想法去掉。
要领7:定时任务执行的脚本要存放到规范路径下
要领8:配置定时任务要规范操作过程,减少出错
要领9:定时任务脚本中程序命令及路径尽量用全路径
要领10:时间变量%号要用反斜线转义(只有定时任务里是命令时需要)
要领11:若脚本中调用了系统环境变量,要重新定义
要领12:出错或无法执行,就检查/var/log/cron日志
10.范例:
范例1:让服务器时间每5分钟和互联网时间做一次同步。
安装时间服务软件:yum install ntpdate -y
更新互联网时间: /usr/sbin/ntpdate ntp1.aliyun.com
解答:[root@oldboyedu ~]# crontab -e (创建定时任务)
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null
[root@oldboyedu ~]# crontab -l (查看定时任务)
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null
范例2:每天晚上0点,把站点目录/var/www/html下的内容打包备份到/data目录下,并且要求每次生成不同的备份包名。
解答:
1、[root@oldboyedu ~]# cd /var/www/ (进入需要打包的文件的上级目录)
2、[root@oldboyedu /var/www]# tar zcf /data/heml_$(date +%F).tar.gz ./html (压缩需要打包的文件或目 录)
3、[root@oldboyedu /]# mkdir /server/scripts/ -p (创建存放脚本文件的目录)
4、cd进入 /server/scripts/ 目录
5、vim bak.cd
进入编辑模式输入:
cd /var/www/&\
tar zcf /data/heml_$(date +%F).tar.gz ./html 保存退出
6、cat /server/scripts/bak.ch 查看文件
7、/bin/ch /server/scripts/bak.ch 执行文件
8、crontab -e 创建定时任务
9、输入 #(写明定时任务是 什么人,什么时间以及因为什么做了定时任务计划)(最好是英文注释)
00 00 * * * /bin/sh /server/scripts/bak.sh &>/dev/null (保存退出)
10、crontab -l|tail -2(检查结果)
本文标题:课堂笔记day17(sgid、系统定时任务以及定时任务操作规范)
本文链接:https://www.haomeiwen.com/subject/gqilvqtx.html
网友评论