cron计划任务(周期性计划任务)      

按照设置的时间间隔对用户反复执行固定系统任务

重要:时间+计划


系统服务(名称):crond

日志文件:/var/log/crond

从一开机就开始记录crond(不管成功还是失败)



使用 crontab 命令

– 编辑:crontab -e -u 用户名

– 查看:crontab -l -u 用户名

– 清除:crontab -r -u 用户名


1.查看服务状态

[root@server0 ~]# systemctl status crond


2.书写计划任务

7个*分隔开表示

   *     *     *     *     *

   分  时  日  月  周            #0~7 ,0和7表示周日

 

  /n :时间频率,表示每n执行的计划

*/1 * * * *:表示任意时间范围类每隔一分钟       

[root@server0 ~]# useradd natasha    #添加用户natasha

[root@server0 ~]# which ifconfig    #查询命令所对应的程序位置

[root@server0 ~]# which date

/usr/bin/date            #查询到date命令对应的程序在/usr/bin/date


[root@server0 ~]# crontab -e -u natasha #进入编辑界面

 */1 * * * * /usr/bin/date  >> /home/natasha/abc.txt

 

[root@server0 ~]# crontab -l -u natasha  #查看计划任务

*/1 * * * * /usr/bin/date  >> /home/natasha/abc.txt   


[root@server0 ~]#  watch -n 1 cat /home/natasha/abc.txt   #验证任务执行结果

追加重定向依次显示不覆盖,覆盖重定向显示新的会覆盖旧的


[root@server0 ~]# crontab -r -u natasha  #清除计划任务,不是清除用户,用户还在 

[root@server0 ~]# crontab -l -u natasha  #查看计划任务已被清除

no crontab for natasha

[root@server0 ~]#  watch -n 1 cat /home/natasha/abc.txt #之前的任务还在,只是不会再继续执行下去


--------------------------------------------------------------------------------------------------------------------------------------------------

提醒:面试常问问题

Q:Linux有哪些常用权限?

正确回答:基本权限,特殊权限,acl访问控制列表权限。

错误回答举例:rwx权限.....

rwx是基本权限中的类型,要根据题意来回答

基本权限的类别

访问方式(权限)

– 读取:允许查看内容-read    r

– 写入:允许修改内容-write     w

– 可执行:允许运行和切换-execute  x


 对于文本文件:

            r: cat  head tail less

            w:  vim

            x:  运行 cd


权限适用对象(归属)

– 所有者(所属主):拥有此文件/目录的用户-user     u

– 所属组(所属组):拥有此文件/目录的组-group      g

– 其他用户:除所有者、所属组以外的用户-other       o




[root@server0 ~]# ls -l /etc/passwd

-rw-r--r--. 1 root root 2044 10月 30 19:08 /etc/passwd

权限位 硬连接数 属主 属组 大小 最后修改时间 文件/目录名称

#  -rw-r--r--表示权限位 

后面9个项分3个分别表示所有者(rw-),所属组(r--),其他用户(r--)的权限


[root@server0 ~]# ls -ld /etc/


[root@server0 ~]# ls -ld /root


[root@server0 ~]# ls -ld /home/student


[root@server0 ~]# ls -ld /tmp


  以“-”开头: 文件       例如:-rw-r--r--. 1 root root 2044 10月 30 19:08 /etc/passwd

  以“l”开头: 快捷方式   例如:

  以“d”开头: 目录       例如:drwxr-xr-x. 2 root root 6 10月 30 19:45 /nsd01


使用 chmod 命令 修改权限

– chmod [-R] 归属关系+-=权限类别 文档...

        [-R] 递归赋予权限


[root@server0 ~]# mkdir /nsd01

[root@server0 ~]# ls -ld /nsd01

drwxr-xr-x. 2 root root 6 10月 30 19:45 /nsd01


[root@server0 ~]# chmod u-x /nsd01    #所属主去掉x权限

[root@server0 ~]# ls -ld /nsd01

drw-r-xr-x. 2 root root 6 10月 30 19:45 /nsd01


[root@server0 ~]# chmod g+w /nsd01    #所属组添加w权限

[root@server0 ~]# ls -ld /nsd01

drw-rwxr-x. 2 root root 6 10月 30 19:45 /nsd01


[root@server0 ~]# chmod o=rwx /nsd01  #其他用户全都改为rwx权限

[root@server0 ~]# ls -ld /nsd01

drw-rwxrwx. 2 root root 6 10月 30 19:45 /nsd01


[root@server0 ~]# chmod u=rwx,g=rx,o=r /nsd01

[root@server0 ~]# ls -ld /nsd01




 如何判断用户具备权限

     1.判断用户所属的身份         所有者>所属组>其他人   匹配及停止  

     2.看相应权限位的权限划分


   

 目录的 r 权限:能够 ls 浏览此目录内容

 目录的 w 权限:能够执行 rm/mv/cp/mkdir/touch/...等 更改目录里内容的操作

 目录的 x 权限:能够 cd 切换到此目录


####################################################

例题:

以root用户新建/nsddir/目录,在此目录下新建readme.txt文件,并进一步完成下列操作

1)使用户zhangsan能够在此目录下创建子目录  切换用户  su - zhangsan

[root@dqs ~]# mkdir /nsddir      #创建/nsddir目录

[root@dqs ~]# touch  /nsddir/readme.txt   #在/nsddir目录下创建readme.txt文件

[zhangsan@dqs ~]$ mkdir /nsddir/zhangsan     #切换到用户zhangsan下创建目录及子目录 提示以下                                                信息,没有权限不能创建

mkdir: cannot create directory ‘/nsddir/zhangsan’: Permission denied


  

    chmod o+w  /nsddir/


2)使用户zhangsan不能够在此目录下创建子目录

    chmod o-w  /nsddir/


3)使用户zhangsan能够修改readme.txt文件

    chmod o+w  /nsddir/readme.txt


4)调整此目录的权限,使所有用户都不能进入此目录

   chmod u-x,g-x,o-x  /nsddir/


5)为此目录及其下所有文档设置权限 rwxr-x---

   chmod -R  u=rwx,g=rx,o=---  /nsddir/


###############################################


设置文档归属

使用 chown 命令

– chown [-R] 属主 文档...

– chown [-R] :属组 文档...

– chown [-R] 属主:属组 文档...


[root@server0 ~]# useradd dc        #添加用户dc

[root@server0 ~]# mkdir /nsd05      #创建目录nsd05

[root@server0 ~]# ls -ld /nsd05     #查看目录的详细属性

[root@server0 ~]# groupadd tedu     #创建组tedu

[root@server0 ~]# chown dc:tedu /nsd05  #将dc用户设置属主,tedu组为属组

[root@server0 ~]# ls -ld /nsd05


[root@server0 ~]# chown student /nsd05   #设置student为属主

[root@server0 ~]# ls -ld /nsd05


[root@server0 ~]# chown :root /nsd05/     #设置root为属组

[root@server0 ~]# ls -ld /nsd05/


####################################################

 特殊权限(附加权限)


Set UID


附加在属主的 x 位上

– 属主的权限标识会变为 s (在附加之前有x权限的前提下),若附加之前没有x权限再附加,则变为S

– 适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限(传递所有者身份)



Set GID

附加在属组的 x 位上

– 属组的权限标识会变为 s(在附加之前有x权限的前提下),若附加之前没有x权限再附加,则变为S

– 适用于可执行文件,功能与Set UID类似(传递所属组身份)


– 适用于目录,Set GID可以使目录下新增的文档自动设置与父目录相同的属组

[root@server0 ~]# mkdir /tarena

[root@server0 ~]# ls -ld /tarena


[root@server0 ~]# chown :tedu /tarena

[root@server0 ~]# ls -ld /tarena


[root@server0 ~]# mkdir /tarena/nsd01

[root@server0 ~]# ls -ld /tarena/nsd01


[root@server0 ~]# chmod g+s  /tarena/

[root@server0 ~]# ls -ld  /tarena/


[root@server0 ~]# mkdir   /tarena/nsd02

[root@server0 ~]# ls -ld  /tarena/nsd02

[root@server0 ~]# touch  /tarena/nsd02/abc.txt

[root@server0 ~]# ls -l  /tarena/nsd02/abc.txt

#################################################



Sticky Bit

附加在其他人的 x 位上

– 其他人的权限标识会变为 t

– 适用于开放 w 权限的目录,可以阻止用户滥用 w 写入

权限(禁止操作别人的文档)


[root@server0 ~]# mkdir /public

[root@server0 ~]# chmod u=rwx,g=rwx,o=rwx /public

[root@server0 ~]# ls -ld /public


[root@server0 ~]# chmod o+t /public

[root@server0 ~]# ls -ld /public