标签:
一、简单知识
1.命令积累:
ifup eth0 //启动网卡
ifdown etho //关闭网卡
route -n //查看网关
route del default gw 10.0.0.244 //删除网关,gw 代表网关 add代表添加网关
2.linux中为什么配置文件都需要重启生效?
防止配置出错
把所有配置放在内存里,如果放到磁盘里,会很慢
3.一些网络配置的基本问题
/etc/sysconfig/network //网关的配置以及用户名配置
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/resolv.conf //修改dns host www.baidu.com 返回有ip地址,说明dns没有问题
如果ping网关是通的,dns是不通的,则看下本机的DNS是不是有问题
如果ping 网关是通的,ping百度不通,ping8.8.8.8.8不通,这时候要考虑是不是带宽的提供商是不是出问题,用路由ping一下,路由ping内网和外网的方法是,ping 内网和外网IP -t
相关参考博文:
http://blog.csdn.net/it1988888/article/details/8249942
http://www.djjwz.com/news/news2375.html
4.suid和sgid,为什么/etc/passwd的权限是644,确能改密码呢?
[root@kaka ~]# ll /etc/passwd
-rw-r--r--. 1 root root 1463 Jun 27 02:34 /etc/passwd
setuid是让普通用户可以以root用户的角色运行的权限
[root@kaka ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 Feb 22 2012 /usr/bin/passwd
如上例中的s,suid==4,也就是4755,就是有它,普通用户才能改密码,因为这个命令你不能控制别人怎么用,所以少用为好
setgid 中的g是2000表示
粘滞位chmod 0+t 1.txt //t结尾,一个目录就算是777权限,加上粘滞位后,除了属主和root用户能删除它之外,其他人不可能删除它,主要用于共享
二、定时任务
1.crond是系统定期来执行命令或指定在、程序任务的一种服务或者软件,就好比我们生活中使用的闹钟,开机自启动服务:ssh network syslog systat crond ,主要用于公司的0点备份
2.守护程序或守护进程:计算机正在执行的程序,守护进程是一直运行的程序
程序文件:程序代码组成,但没有在计算机内执行,当前没有执行
3.linux系统自身定期执行的任务,备份系统日志,清理系统缓存
[root@kaka logrotate.d]# pwd /etc/logrotate.d [root@kaka logrotate.d]# Display all 1969 possibilities? (y or n) [root@kaka logrotate.d]# cat 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 }
4.用户执行的任务工作(系统管理员的活儿):有三种at,crontab,anacron
at:只是执行一次,这些crontab可以满足
anacron:不是用于7*24小时的任务,机房都是7* 24小时,所以用不着
crontab -e -l 常用,-分时日月周
/etc/cron.deny //拒绝
/etc/cron.allow //允许
/var/spool/cron //编辑crontab的任务配置文件,在$user下(当期用户)
用户的定时任务:* * * * * cmd // cmd是命令
系统的定时任务:cat /etc/crontab
特殊符号意义:
* 任意
- 分割号 17-19
,分割时间段的意思17,19,22
/n n代表数字,每隔n单位时间
记住周和日不要同时用,因为有时候不在同一天
chkconfig - -list crond //直接查看进程
ps -ef|grep cron
实验:每分钟将自己的名字打印到/server/log服务上面来
首先mkdir /server/log -p //创建一个自己的目录
[root@kaka ~]# cd /etc/logrotate.d [root@kaka logrotate.d]# crontab -e no crontab for root - using an empty one crontab: installing new crontab //文件中加入 * * * * * echo xiongchao >>/server/log/carlton [root@kaka logrotate.d]# tail -f /server/log/carlton xiongchao //结果执行成功
5.在计划任务中加上当天的日期打印出来并定期执行
此题最重要的是解题思路,首先得知道如何设置一个定时任务,配置文件在etc/logrotate.d 下执行crontab -e 修改
验证 date +%F 能不能够把2016-06-28显示出来
其次mkdir /server/log/1.log -p
date +%F >>/server/log/1.log //之后cat该文件,确认1.log中添加是否成功2016-06-28
最重要的一步到了,将上述的命令写入到log.sh下
vi log.sh //添加 date +%F >>/server/log/1.log //在这里log.sh最关键的是.sh结尾的脚本,名字不重要,只要是.sh结尾的才可以执行里面添加的命令,将date命令结果写入到1.log中
/bin/sh /server/log/log.sh //执行命令之后cat ,查看是否更新2016-06-28
进入/etc/logrotate.d中crontab -e 输入计划任务,完成定时执行任务
难点:要理解.sh文件的作用以及/bin/sh 是用来启动.sh的脚本 或者vi /var/spool/cron/root 进行编辑
相关博文:http://www.cnblogs.com/mingforyou/p/3930636.html
定时任务的规范要领:
a.写任务时加注释
b.执行shell脚本任务前加/bin/sh
c.在指定用户下执行相关的定时任务
d.定时任务结尾加(一般在脚本后加,echo加会出错)>/dev/null2>&1 等价于1>/dev/null
2>/dev/null 2>&1 表示无论是正确的还是错误的都重定向过去
> 和1> 是等同 代表把追加的信息直接覆盖目标文件
1>>和>> 是等同 代表追加的信息直接追加目标文件
标准错误输出:代码为2使用2> 或2>>
e.生产任务程序不要随意打印输出信息
f.定时任务脚本要规范
标签:
原文地址:http://www.cnblogs.com/carltonx/p/5625503.html