定时任务

第1章 回顾昨天

1.1 权限报错问题

基础权限9位3位特殊共12位

[oldboy@show ~]$ whoami

oldboy

[oldboy@show ~]$ ls /root/

ls: cannot open directory /root/: Permission denied

 

[oldboy@show ~]$ rm -f /etc/passwd

rm: cannot remove `/etc/passwd': Permission denied

 

[oldboy@show ~]$ ls -l /tmp/oldboy.txt

-rw-r--r-- 1 root root 6 Jun 26 22:32 /tmp/oldboy.txt

[oldboy@show ~]$ echo hello oldboy >>/tmp/oldboy.txt

-bash: /tmp/oldboy.txt: Permission denied

[root@oldboyedu-39-nb ~]# su - oldboy

[oldboy@oldboyedu-39-nb ~]$ ls /root/

ls: cannot open directory /root/: Permission denied

[oldboy@oldboyedu-39-nb ~]$ ls -d /root/

/root/

[oldboy@oldboyedu-39-nb ~]$ ls -ld /root/

dr-xr-x---. 5 root root 4096 Aug  3 21:28 /root/

报错的原因及排除过程:

1.查看文件或目录的权限

2.查看当前用户与这个文件或目录的关系

3.当前用户对 这个文件或目录有什么权限

因为查看目录里面的内容 需要对这个目录拥有 rx权限

[root@oldboyedu-39-nb ~]# cp /etc/hosts{,.bak}

[oldboy@show ~]$ rm -f /etc/asswd

rm: cannot remove `/etc/passwd': Permission denied

 

[oldboy@oldboyedu-39-nb ~]$ \rm -f /etc/hosts

rm: cannot remove `/etc/hosts': Permission denied

[oldboy@oldboyedu-39-nb ~]$ \rm -f /etc/hosts

rm: cannot remove `/etc/hosts': Permission denied

[oldboy@oldboyedu-39-nb ~]$ ls -l /etc/hosts

-rwxrwxrwx. 2 root root 216 May 20 22:57 /etc/hosts

linux删除一个文件的权限 要看 文件所在目录的权限

文件名存放在 文件所在目录的block中。

1.查看文件或目录的权限

 ls -ld /etc/

drwxr-xr-x. 78 root root 4096 Aug  3 21:44 /etc/

2.查看当前用户与这个文件或目录的关系

3.当前用户对 这个文件或目录有什么权限

 oldboy对 /etc目录 有rx权限

 删除一个文件的权限  你需要对这个目录拥有w权限

[oldboy@oldboyedu-39-nb ~]$ echo hello >>/tmp/oldboy.txt

-bash: /tmp/oldboy.txt: Permission denied

 

[oldboy@oldboyedu-39-nb ~]$ echo hello >>/tmp/oldboy.txt

-bash: /tmp/oldboy.txt: Permission denied

[oldboy@oldboyedu-39-nb ~]$ ls -l /tmp/oldboy.txt

-rw-r--r-- 1 root root 0 Aug  3 21:54 /tmp/oldboy.txt

小结:

1.修改文件 查看文件的内容 需要对文件有 rw

2.删除 创建一个文件       需要对文件所在目录拥有 wx  rwx

1.2 怎么样让网站更佳安全

1.文件644 root root

2.dir 755 root root

3.上传目录 upload

4.file 644 www www 

5.dir  755 www www

1.3 文件系统权限

chattr lsattr

a

i

1.4 排查系统负载高 cpu 内存

top

ps -ef

kill #PID

第2章 定时任务

定时任务相当闹钟

etc-2017-05-20-02.tar.gz

定时任务 每隔相同的时间  每天  每小时  做相同的事情(命令  脚本*****) 备份

 

2.1 rpm 扩展 如何查询软件包的内容和软件包属于哪个大礼包

 

有时候一个功能可能只是软件包中的一个 一部分

2.1.1 查看crond属于哪个大礼包

crond属于哪个大礼包

rpm -qf crond命令的绝对路径

[root@oldboyedu-40 ~]# rpm -qf `which crond `

cronie-1.4.4-16.el6_8.2.x86_64

2.1.2 如何查看软件包里面的内容

 rpm -ql

[root@oldboyedu-40 ~]# rpm -ql cronie

/etc/cron.d

/etc/cron.d/0hourly

/etc/cron.deny

/etc/pam.d/crond

/etc/rc.d/init.d/crond

/etc/sysconfig/crond

/usr/bin/crontab

/usr/sbin/crond

/usr/share/doc/cronie-1.4.4

/usr/share/doc/cronie-1.4.4/AUTHORS

/usr/share/doc/cronie-1.4.4/COPYING

/usr/share/doc/cronie-1.4.4/ChangeLog

/usr/share/doc/cronie-1.4.4/INSTALL

/usr/share/doc/cronie-1.4.4/README

/usr/share/man/man1/crontab.1.gz

/usr/share/man/man5/crontab.5.gz

/usr/share/man/man8/cron.8.gz

/usr/share/man/man8/crond.8.gz

/var/spool/cron

2.1.3 实例:查询ifconfig 属于哪个软件包

[root@oldboyedu-40 ~]# rpm -qf $(which ifconfig )

net-tools-1.60-114.el6.x86_64

[root@oldboyedu-40 ~]# rpm -ql net-tools

[root@oldboyedu-40-nb ~]# rpm -qf `which ifconfig`

net-tools-1.60-114.el6.x86_64

[root@oldboyedu-40-nb ~]# rpm -ql net-tools

安装命令时需要把大礼包全安装上吗

which 和 whereis  都是找系统里面本身有的  如果which和whereis 都没结果  rpm -qf  还能找么

第3章 系统定时任务

3.1 /etc/crontab文件和crontab -e命令区别

1、格式不同

前者

# For details see man 4 crontabs

# 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
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

后者

#50 1 * * *  command

2、使用范围

修改/etc/crontab这种方法只有root用户能用,这种方法更加方便与直接直接给其他用户设置计划任务,而且还可以指定执行shell等等,
crontab -e这种所有用户都可以使用,普通用户也只能为自己设置计划任务。然后自动写入/var/spool/cron/usename

3.服务重启

 1 /etc/init.d/crond restart

 2 service crond restart



1、crontab 会进行语法检查,vi 不会

2、听说有些 os 的 crond 不会重读配置,所以用 service 重启

crontab -e是某个用户的周期计划任务;/etc/crontab是系统的周期任务

1. crontab -e 与 /etc/crontab 修改语法格式不一样,后者多一个 user 指定

2. 不管用 crontab -e or 改 /etc/crontab 都不需要重新启动 crond 服务

01 22 * * * /sbin/shutdown -h now
执行的结果都是一样, 一般LINUX 都用shutdown -h now 也可以init 0
init 0在UNIX用得比较多,

关机需要root的身份在可以执行,
lz可以选取方法操作
方法1
换到root 的身份
su - root
crontab -e (按a增加下)
01 22 * * * /sbin/shutdown -h now   (或01 22 * * * /sbin/init 0)
保存退出即可以

方法2 vi /etc/crontab 在里面插入
01 22 * * * root   /sbin/shutdown -h now
或 01 22 * * * root   /sbin/init 0

 

/var/log/messages 系统日志文件

/var/log/messages-20170501

日志切割---日志轮询----系统的定时任务+logrotate(管理日志文件)

安全信息和系统登录与网络连接的信息:/var/log/secure

[root@~]# ls -ld /var/log/secure*

-rw-------  1 root root  23K 2017-09-07 08:12 /var/log/secure

-rw-------. 1 root root  735 2017-08-20 09:38  /var/log/secure-20170820

-rw-------  1 root root 9.3K 2017-08-25 03:00 /var/log/secure-20170825

-rw-------  1 root root 2.4K 2017-08-27 20:46 /var/log/secure-20170827

-rw-------  1 root root  22K 2017-09-03 06:36 /var/log/secure-20170903

 

[root@oldboyedu-40 ~]# ll /etc/cron.daily/

total 24

-rwx------. 1 root root  180 Jul 10  2003 logrotate

-rwx------. 1 root root  927 Mar 22 08:53 makewhatis.cron

-rwx------. 1 root root  189 Jan 26  2015 mlocate.cron

-rwxr-xr-x. 1 root root 2126 Jul 19  2013 prelink

-rwxr-xr-x. 1 root root  563 Nov 23  2013 readahead.cron

-rwxr-xr-x. 1 root root  433 Nov  7  2015 tmpwatch  

[root@oldboyedu-40 ~]# cat /etc/logrotate.d/syslog

/var/log/cron

/var/log/maillog

/var/log/messages

/var/log/secure

/var/log/spooler

{

    sharedscripts

    postrotate

       /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

    endscript

}

3.2 用户定时任务

[root@oldboyedu-40 ~]# crontab -l  

no crontab for root

[root@oldboyedu-40 ~]# #root用户没有定时任务

3.3 使用定时任务

3.3.1 查看定时任务是否运行

[root@oldboyedu-40 ~]# /etc/init.d/crond status

crond (pid  8913) is running...

[root@oldboyedu-40 ~]# ps -ef |grep crond

root       8913      1  0 14:49 ?        00:00:01 crond

root      33383  32849  0 22:52 pts/2    00:00:00 grep crond

[root@oldboyedu-40 ~]# ps -ef |grep sshd

root       8791      1  0 14:49 ?        00:00:00 /usr/sbin/sshd

3.3.2 定时任务是否开机自启动

[root@oldboyedu-40 ~]# chkconfig |grep crond

crond                0:off      1:off      2:on       3:on       4:on       5:on       6:off

3.3.3 crontab怎么使用

      crontab命令使用

 -e edit 编辑当前用户的定时任务

                  vi /var/spool/cron/root

      -l list显示当前用户的定时任务

                  cat /var/spool/cron/root

3.3.4 为何使用crontab命令

            1.有语法检查功能 格式不对

            2.方便

       

3.4 定时任务相关的文件

###/var/spool/cron/

 

###/var/log/cron

3.5 linux中查看日志

grep /egrep

less

tail /tail -f

head

* * * * *  命令

3.6 每五分钟同步一下系统的时间

3.6.1 第一个里程碑-用什么命令

[root@oldboyedu-40 ~]# ntpdate ntp1.aliyun.com

 7 Sep 10:52:44 ntpdate[33569]: step time server 182.92.12.11 offset 2286907.971444 sec

[root@oldboyedu-40 ~]#

3.6.2 第二个里程碑-定时任务

[root@oldboyedu-40 ~]# crontab -l

#sync time by li  20170101

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

 

3.6.3 第三个里程碑-检查结果

date -s "10year"

Tue Sep  7 10:56:03 CST 2027

3.7 每天的上午7点到上午11点 每一个小时运行CMD命令

定时任务中表示小时 每个小时 在分钟上面加上00   表示整点

3.7.1 格式:

* 07-11 * * * CMD              ###错误

 

00 07-11   * * * CMD          ###OK

00 07-11/1 * * * CMD           ###OK

00 07-11 * * * CMD    ###OK

00 07,08,09,10,11 * * * CMD 

3.8 早上7点到11点还有晚上10点到12点

00 07-11,22-00 * * *  CMD

3.9 每分钟把自己的名字 追加到 /oldboy/oldboy.txt

3.9.1 第一个里程碑-命令

[root@oldboyedu-40 ~]# mkdir -p /oldboy

[root@oldboyedu-40 ~]# echo oldboyedu >>/oldboy/oldboy.txt

[root@oldboyedu-40 ~]# cat /oldboy/oldboy.txt

oldboyedu

3.9.2 第二个里程碑-定时任务

[root@oldboyedu-40 ~]# crontab -l |tail -2

#print name by li 20170101

* * * * *   echo oldboyedu >>/oldboy/oldboy.txt  2>&1

3.9.3 第三个里程碑-检查

[root@oldboyedu-40 ~]# tail /oldboy/oldboy.txt

oldboyedu

[root@oldboyedu-40 ~]# tail /oldboy/oldboy.txt

oldboyedu

[root@oldboyedu-40 ~]# tail -2  /var/log/cron

Sep  7 12:06:01 oldboyedu-40 crond[8913]: (root) RELOAD (/var/spool/cron/root)

Sep  7 12:06:01 oldboyedu-40 CROND[35124]: (root) CMD (echo oldboyedu >>/oldboy/oldboy.txt  2>&1)

[root@oldboyedu-40 ~]# tail /oldboy/oldboy.txt

oldboyedu

oldboyedu

3.9.4 正确格式:

* * * * *  /bin/echo "oldboy" >>/oldboy/oldboy.txt >/dev/null 2>&1

3.9.5 姿势:

定时任务中 命令/脚本  定向到空     >/dev/null 2>&1

定时任务中 命令/脚本  追加到文件中 >>/tmp/oldboy.log 2>&1

第4章 扩展

logroate 如何切割日志

 

第5章 总结

5.1 定时任务书写格式

5.2 rpm

第6章 预习

第四关练习题-定时任务+正则+vim 

转载于:https://www.cnblogs.com/Arlen723/p/7846171.html

你可能感兴趣的:(操作系统,开发工具,shell)