1. Linux的根目录(最顶层的目录)
windows系统有根目录:c盘的根目录就是c:\
d盘的根目录就是d:\
每个盘(分区)都有自己的根目录 Linux系统,
也支持多个分区
Linux的分区和目录是没有关系! Linux的目录结构:
只有1个根 /
根目录下有:
/root 是管理员的家目录
/home 普通用户的家目录
/home/zhang_fei 就是zhang_fei的家目录
/etc 保存配置文件
/usr 用来保存用户安装的程序
UNIX的发展历史:
最找的UNIX只有/目录
再后来UNIX的系统越来越大,一个磁盘装不下去了。
就使用第2块磁盘,就使用/usr来挂载第2个磁盘
所以,/usr目录下有很多子目录和根目录下的相同。
/dev 用来存放设备文件
/var 用来存放内容经常变化的文件
比如日志文件, /var/log/messages
/tmp 用来存放临时文件
/bin 用来存放系统的二进制命令的
/mnt 用来挂载可移动的存储设备 目录层次标准FHS 误解:/usr目录"放在/目录内"
不是容器的关系 Linux的目录结构,是一个与分区无关的”目录结构” 2. Linux系统的目录和分区的关系
目录, 是固定的,逻辑意义上的,和分区没有直接的关系 1块磁盘(硬盘),可以划分为多个分区
分区是物理意义的,是实际存在的。
安装系统时,必须把某个分区挂载到根目录
分区可以挂载在任意一个目录上,这个目录就称为挂载点。 3. 相对路径和绝对路径 绝对路径:从/(根目录)开始的路径
相对路径:相对与“当前目录”
注意:当前目录是可变的!
当前目录用 . 表示 从当前目录开始的,就是相对路径
./data/test/log
data/test/log
以上两种方式等效。 ../test/data
..表示当前目录的上一级目录 4. 常用的配置文件
/etc/sysconfig/network-sripts/ifcfg-eth0
网卡eth0的配置文件 /etc/resolv.conf
指定DNS服务器的IP地址 /etc/hosts
设置域名(主机名)和ip的对应关系。 /etc/fstab
使用mount -a挂载所有文件系统时的配置文件 /etc/rc.local
开机自动启动的程序
可以把需要开机自动启动的命令添加到该文件。 /etc/inittab
主机启动以后,init进程(Linux系统的第一个进程)把系统设置为哪种运行级别
运行级别(0-6)
0: 关机
1. 单用户模式
2. 多用户模式,但是NFS无效
3. 多用户模式,具有网络功能的
4. 未使用
5. X11(多用户图形模式)
6:重启 /etc/profile
定义系统的全局的环境变量 /etc/group
存放用户组的信息 /etc/passwd
存放用户名的相关信息 /etc/shadow
存放用户密码 /etc/syslog.conf
CentOS5.x中,日志的配置文件 /etc/rsyslog.conf
CentOS6.x中,日志的配置文件 5. 定时任务
补充:
程序和进程
程序:就是一个软件。
进程:就是程序的一次执行过程。 进程ID: 每个进程都有自己唯一的标识。 查看进程: ps -ef 进程的存在方式:前台, 后台。
即进程可以在前台运行,也可以在后台运行。
后台进程,一般都一直运行,直到关机,又称为“守护进程” 定时任务, 就是一个守护进程。 2. Linux的定时任务
定时任务(调度任务) Linux的定时任务,通过crond服务实现。 2.1 crond是什么?
crond, 就是一种守护进程,
可用来定期地执行命令或者指定的程序。 crond服务,默认已经安装。 2.2 crond的功能
可以实现各种定时任务,
可以精确到分钟。 如果需要每秒中执行1个定时任务,
直接用crond实现不了。
可以用脚本文件实现:
例如:
while true; do
echo "hello world"
sleep 1
done 2.3 为什么要使用定时任务
服务器, 7*24小时都开机提供服务的。
有一些重要数据,每天都需要备份一次。
就需要使用定时服务。 Linux定时任务的分类
1)系统自身的定时任务
2)用户自定义的定时任务
这两类定时任务,都需要通过crond服务来实习。 Linux定时任务的类型:
1)at 只执行1次。
2)anacron
用来检测听机期间,没有执行的任务。
然后再开机后,把这些任务全部执行。
最多只执行1次。
3)crond 怎样使用用户自定义的定时任务:
crontab # crontab -l
查看当前用户的定时任务 # crontab -e
编辑当前用户的定时任务
编辑完毕后保存时,会自动检查格式,
如果格式不合法,就不保存。 如果格式合法,就保存到/var/spool/cron/root
如果是用户zhangfei,那么就保存到
/var/spool/cron/zhangfei 要点:
不要直接编辑用户的定时任务文件:
/var/spool/cron/root
因为,直接用vim编辑它时,不会自动检查语法。
使用crontab -e 就能自动检查语法。 用户定时任务的格式
分 时 日 月 周 命令或者执行脚本
* * * * * echo "hello world" >> /tmp/mytest.log 第1列为 *, 就表示每分钟
00, 就表示分钟时刻为00
*/3, 就表示每3分钟
30,40 就表示30分钟和40分钟
30-40 就表示30,31,32,.... 40 共11次
第2列为 *, 就表示每小时
第3列为 *, 就表示每天
第4列为 *, 就表示每月
第5列为 *, 就表示每周
0和7都表示周日 实例:
30 3,12 * * * /bin/sh /tmp/test.sh
每天的凌晨3:30和中午12:30,执行/tmp/test.sh 30 */6 * * * /bin/sh /tmp/test.sh 30 8-12/2 * * * /bin/sh /tmp/test.sh 30 21 * * * /bin/sh /tmp/test.sh 45 4 1,10,22 * * /bin/sh /tmp/test.sh 10 1 * * 6,0 /bin/sh /tmp/test.sh 00 */1 * * * /bin/sh /tmp/test.sh
每小时的整点时刻执行1次 * 23,00-07/1 * * * /bin/sh /tmp/test.sh
每天晚上11点以及凌晨0点到7点,每分钟执行1次。 00 11 * 4 1-3 /bin/sh /tmp/test.sh
每年的4月分的周1到周3的上午11点整,执行1次 00 11 5 4 1 /bin/sh /tmp/test.sh
错误:周和日不要同时使用。 定时任务的编写要点:
1. 对于一般的定时任务,可以先把这个任务的时间调整为每分钟1次,以便于测试。
测试正确后,再修改时间。 对于有影响的定时任务,就应该在自己的测试环境下测试。
测试没有问题后,在放到生产环境。 2.定时任务的最后1列,最好先在终端中执行,确定没有问题后,再复制到定时任务中。 3. 定时任务中的路径,最好都用绝对路径。 4. 每个定时任务,都应该加注释(用#)
5. 定时任务如果是执行脚本文件,那么就最好使用/bin/sh 来执行,
而不要直接执行脚本文件。
即: /bin/sh 脚本文件名
可以避免脚本文件没有可执行属性,而导致错误
6. 超过两行的命令,就最好用1个脚本文件来实现。
7. 当需要为指定用户定义定时任务时,
最后先切换到该指定用户,然后再定义定时任务。 8. 定时任务的后面, 最好加上
>/dev/null 2>&1 如果在定时任务后面不加以上部分,就可能很快导致“磁盘空间满“
原因:定时任务每次被执行后,就会自动的给用户发1封邮件,
而如果没有开启邮件服务,就会把邮件作为1个文件发送到
/var/spool/clientmqueue/,就会导致该目录下文件数据巨增
从而使inode号耗尽!而每创建1个文件,就需要1个inode /dev/null 表示linux的垃圾箱
>/dev/null 就把前面的输出(1)重定向到垃圾箱
2 >& 1表示把标准错误输出(2)重定向到标准输出(1)
就等效与,把标准输出和标准错误输出,都重定向到回收站 9. 在定时任务,不要随意的打印输出信息。
如果确实需要输出信息,那么应该把输出信息重定向指定的文件。
打印信息将被用邮件的形式发给指定的用户 例如:
tar czvf /tmp/etc.tar.gz /etc
改为
tar czf /tmp/etc.tar.gz /etc
或者改为:
tar czvf /tmp/etc.tar.gz /etc >& /tmp/tar.log 补充:>& /tmp/tar.log
表示把前面的标准输出和标准错误输出都重定向到/tmp/tar.log 10. 定义任务的脚本文件,最好统一放到某个目录,不要乱放。
比如可以放到 /server/scripts/ 11. 时间变量的使用
echo `date +%Y年%m月%d日%H:%M:%S`
%在定时任务中,表示新的一行,new line 所以时间变量中的%应该进行转义
即在%前加 \
echo `date +\%Y年\%m月\%d日\%H:\%M:\%S` 系统的定时任务
用户的定时任务,用来实现用户自定义的定时任务。
系统的定时任务,一般用于系统级的维护工作。
比如:写缓存数据到硬盘。
清理日志。 系统的定时任务的实现:
编辑 /etc/crontab 调试定时任务的方法
1. 增加频率
把任务的执行频率调快一点,比如每分钟1次。
如果该任务有影响,就一定要放到测试环境下测试。 2. 修改系统的时间
3. 在定时任务中输出调试信息
输出信息会自动发邮件给指定用户
或者把调试信息重定向指定文件 定时任务的常见错误:
1. 环境变量
在定时任务执行,系统中的大部分环境变量都不能使用 解决方案:
1)重新定义这些环境变量
UID=0 2)导入环境变量的配置文件
-------------------------
/bin/sh /etc/profile ........
--------------------------
补充:/etc/profile就是系统的环境变量的定义脚本 2. * * * * * echo "hello" >> /tmp/a.log >/dev/null 2>&1
>>/tmp/a.log 和后面的 >/dev/null 2>&1 不能同时使用

  

linux目录结构及定时任务的更多相关文章

  1. day 2 Linux目录结构

    Linux系统的目录结构的基本介绍: 1)在逻辑上的所有目录(包括目录下的子目录)都在最高级别的目录“/”下. 根(/)目录是Linux系统中所有目录的起始点(顶点),根下面的目录及子目录是一个有层次 ...

  2. 每天一个linux命令(23):Linux 目录结构

    对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...

  3. 【Linux】Linux 目录结构

    博客已转移,请借一步说话 .http://www.weixuehao.com/archives/492 初学Linux,首先需要弄清Linux 标准目录结构 / root --- 启动Linux时使用 ...

  4. CentOS6.5菜鸟之旅:纯转载Linux目录结构

    来自:http://www.iteye.com/topic/1125162 使用linux也有一年多时间了  最近也是一直在维护网站系统主机  下面是linux目录结构说明 本人使用的是centos系 ...

  5. 每天一个linux命令(19):Linux 目录结构

    对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...

  6. Linux目录结构及常用命令(转载)

    一.Linux目录结构 你想知道为什么某些程序位于/bin下,或者/sbin,或者/usr/bin,或/usr/sbin目录下吗?例如,less命令位于/usr/bin目录下.为什么没在/bin中,或 ...

  7. Linux目录结构【转】

    使用linux也有一年多时间了  最近也是一直在维护网站系统主机  下面是linux目录结构说明 本人使用的是centos系统,很久没有发表博文了 近期会整理自己所用所了解知识点,发表linux相关的 ...

  8. 【Linux笔记】Linux目录结构

    [Linux笔记]Linux目录结构   本文内容整理自网络,以作参考. /:根目录,位于linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc./bin./dev./lib ...

  9. Linux目录结构及文件基础操作

    一.Linux目录结构 windows系统中主要以存储介质为主(磁盘). UNIX和Linux系统中主要是以目录为主(以树形目录结构的形式构建整个系统). 1. FHS(Filesystem Hier ...

随机推荐

  1. Redux基础必知必会 reducer拆分 中间件 单向数据流

    什么是 redux? 三大原则? 什么是 redux Redux 是一个基于 js 的全局可预测状态容器,主要用于现代前端框架中进行全局状态管理,能够在不同组件之间进行状态共享 Redux 常与 Re ...

  2. 【课程汇总】OpenHarmony全场景Demo数字管家系列课(附链接)

    小孩放学了,做作业的时间到,窗帘.护眼灯自动打开,关掉电视和扫地机,给小孩一个安静舒适的学习环境:碰到学习难题,可以随时请求你的远程指导:晚上回家休息了,选择舒适的氛围灯,伴随着睡眠音乐进入梦乡:出门 ...

  3. 基于Composer的Laravel扩展包开发工作流 ,实现laravle项目的文件管理(记录成长)

    PHP Composer包开发 基于Composer的Laravel扩展包开发工作流 实现laravle项目的文件管理,添加文件/文件夹,删除文件,查看代码/文件(代码支持缩进,支持语法高亮) com ...

  4. redis在物理机部署模式下如何进行资源[cpu、网卡]隔离

    上周末晚上运营做直播,业务代码不规范,访问1个redis竟然把1台服务器的网卡打满了,这台服务器上的其他redis服务都受到了影响.之前没有做这方面的预案,当时又没有空闲的机器可以迁移,在当时一点办法 ...

  5. python黑帽子(第三章)

    Windows/Linux下包的嗅探 根据os.name判断操作系统 下面是os的源码 posix是Linux nt是Windows 在windows中需要管理员权限.linux中需要root权限 因 ...

  6. PyTorch环境配置

    PyTorch环境配置 本文档用于记录PyTorch环境配置过程中的要点. PyTorch环境配置 安装Miniconda 安装PyTorch 配置远程开发工具 基于CUDA的张量 导入警告问题 参考 ...

  7. 【GPLT】 紧急救援(c++)

    题目: 本题使用Dijkstra算法,但在模板上进行了一定的扩展,是一道不错的最短路题目. AC代码: 1 #include<iostream> 2 #include<cmath&g ...

  8. CoAP调试工具Mozi.IoT.CoAP应用详解

    前言 CoAP是一种类HTTP协议的物联网专用协议,其数据包为人类不可阅读的字节流形式,在开发相关应用的时候往往不能准确的了解数据包的内容.故需要专用的调试工具对数据和通讯进行调试.这篇文章是为了让开 ...

  9. Jwt验证登录

    练习模板:https://gitee.com/zh1446802857/swagger-multi-version-api.git Jwt在我的 认知里,是一套门锁.别人(用户)需要用到你的接口 的时 ...

  10. PicLite 开发日志 (v0.0.3)

    PicLite 开发日志 (v0.0.3) 感谢您阅读本片文章! Gitee 地址:https://gitee.com/XiaoQuQuSD/pic-lite. 新增功能 当错误出现时不再强制 rai ...