任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql 数据库的备份。
基本语法
crontab [选项]
常用选项
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
service crond restart [重启任务调度]
参数细节
第一个* 一小时当中的第几分钟 范围0-59
第二个* 一天当中的第几小时 范围0-23
第三个* 一个月中的第几天 范围1-31
第四个* 一年中的第几个月 范围1-12
第五个* 一周当中的星期几 范围0-7(0和7都代表星期日)
符号说明
* 代表任何时间,比如第一个*代表一小时中每分钟都执行一次
, 代表不连续的事件,比如“0 8,12,16 * * *”代表在每天的八点,十二点,十六点都执行一次命令
- 代表连续的时间范围。0 5 * * 1-6代表在周一到周六的凌晨五点执行命令
*/n 代表每隔多久执行一次。*/10 * * * * 代表每隔十分钟执行一次
设置任务调度文件:/etc/crontab
设置个人任务调度。执行crontab –e 命令。
接着输入任务到调度文件
如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行ls –l /etc/ > /tmp/to.txt 命令
1) cron -e
2) */ 1 * * * * ls -l /etc >> /tmp/to.txt
3) 当保存退出后就程序。
4) 在每一分钟都会自动的调用 ls -l /etc >> /tmp/to.txt
案例1:每隔 1 分钟,就将当前的日期信息,追加到 /tmp/mydate 文件
1) 先编写一个文件 /home/mytask1.sh
date >> /tmp/mydate
2) 给mytask1.sh 一个可以执行权限chmod 744 /home/mytask1.sh
3) crontab -e
4) */1 * * * * /home/mytask1.sh
5) 成功
案例2:每隔1 分钟, 将当前日期和日历都追加到 /home/mycal 文件
1) 先编写一个文件 /home/mytask2.sh
date >> /tmp/mycal
cal >> /tmp/mycal
2) 给mytask1.sh 一个可以执行权限chmod 744 /home/mytask2.sh
3) crontab -e
4) */1 * * * * /home/mytask2.sh
5) 成功
案例3:每天凌晨2:00 将mysql 数据库 testdb ,备份到文件中mydb.bak
1) 先编写一个文件 /home/mytask3.sh
/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
2) 给mytask3.sh一个执行权限
chmod 744 /home/mytask3.sh
3) crontab -e
4) 0 2 * * * /home/mytask3.sh
5) 成功
1) Linux 运维工程师在进行服务器集群管理时,需要编写Shell 程序来进行服务器管理。
2) 对于JavaEE 和Python 程序员来说,工作的需要,你的老大会要求你编写一些Shell 脚本进行程序或者是服务器 的维护,比如编写一个定时备份数据库的脚本。
3)对于大数据程序员来说,需要编写Shell 程序来管理集群。
Shell 是一个命令行解释器,它为用户提供了一个向Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用Shell 来启动、挂起、停止甚至是编写一些程序.
1) 脚本以#!/bin/bash 开头
2) 脚本需要有可执行权限
创建一个Shell 脚本,输出hello world!
vim myshell.sh
#!/bin/bash
echo "hello world!"
方式1(输入脚本的绝对路径或相对路径)
1) 首先要赋予helloworld.sh 脚本的+x 权限
2) 执行脚本
方式2(sh+脚本),不推荐
说明:不用赋予脚本+x 权限,直接执行即可
chmod 744 myshell.sh
./myshell.sh 相对路径
/root/shell/myshell.sh 绝对路径
一种用于互联网下载包的打包及安装工具,它包含在某些 Linux 分发版中。它生成具有.RPM扩展名的文件。RPM 是RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat 的标志,但理念是通用的。
Linux 的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了。
查询已安装的rpm 列表 rpm –qa|grep xx
请查询看一下,当前的Linux 有没有安装 firefox
rpm -qa | grep firefox
一个rpm 包名:firefox-45.0.1-1.el6.centos.x86_64.rpm
名称:firefox
版本号:45.0.1-1
适用操作系统: el6.centos.x86_64
表示centos6.x 的64 位系统
如果是i686、i386 表示32 位系统,noarch 表示通用
rpm -qa :查询所安装的所有rpm 软件包
rpm -qa | more [分页显示]
rpm -qa | grep X [rpm -qa | grep firefox ]
rpm -q 软件包名 :查询软件包是否安装
rpm -qi 软件包名 :查询软件包信息
rpm -qi file
rpm -ql 软件包名 :查询软件包中的文件
rpm -qf 文件全路径名 查询文件所属的软件包
基本语法
rpm -e RPM 包的名称
1) 删除firefox 软件包
rpm -e firefox
1) 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。
如: $ rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1
2) 如果我们就是要删除 foo 这个 rpm 包,可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行
如:$ rpm -e --nodeps foo
带上 --nodeps 就是强制删除。
基本语法
rpm -ivh RPM 包全路径名称
参数说明
i=install 安装
v=verbose 提示
h=hash 进度条
1) 演示安装firefox 浏览器
步骤先找到 firefox 的安装 rpm 包,你需要挂载上我们安装 centos 的 iso 文件,然后到/media/下去找rpm 找。
cp firefox-45.0.1-1.el6.centos.x86_64.rpm /opt/
cd /opt/
rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm