14. SSH免密登陆
SSH 为 Secure Shell(安全外壳协议) 的缩写。
很多ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而SSH就是专为远程登录会话和其他网络服务提供安全性的协议。
认证机制
从客户端来看,SSH提供两种级别的安全验证。
第一种方式(基于口令的安全验证)
第二种方式(基于密钥的安全验证)
14.1 基于口令安全验证的SSH登陆
linweibingdeMacBook-Air:~ lean$ ssh -l root 192.168.7.103
root@192.168.7.103's password:
Last login: Fri May 4 20:28:16 2018 from 192.168.7.101
[root@mini ~]# exit
logout
Connection to 192.168.7.103 closed.
linweibingdeMacBook-Air:~ lean$ ssh 'root@192.168.7.103'
[email protected]'s password:
Last login: Fri May 4 20:40:45 2018 from 192.168.7.101
[root@mini ~]#
14.2 基于密钥安全验证的SSH登陆
针对客户端命令如下:
//1.产生对应的秘钥(公钥和私钥)
ssh-keygen
....Enter....
....Enter....
....Enter....
Your identification has been saved in /Users/lean/.ssh/id_rsa.
Your public key has been saved in /Users/lean/.ssh/id_rsa.pub.
//2.将公钥直接发送到目标机器的秘钥池里去
ssh-copy-id root@192.168.7.103
//3.尝试再次登陆 此刻无需密码即可登陆
ssh '[email protected]'
Last login: Fri May 4 21:04:53 2018 from 192.168.7.101
因为是使用root用户登陆的,所以公钥将直接发送到目标机的/root/.ssh中,文件名为authorized_keys:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDkKheWDTJpBwH8VTqHyPphUZ5zgm0RbnfYLpIYgNxWEa4Ohv/IGyECjxcNi3k3yCiGrtLS9Lx3VN54w5oyVTg1vYs/OXPuiIQGV+1dOhWX3xbjz32a1wgxH9XnPN9yNPsibtpDyVRlIZs+UTiUO/uNGWjkV7cOKCrKeuEUSYp2HUJBtNtd0PSI7PqzgnhkrzgZeTdB4DzEWf8dgFc2N2HWLP32fGUqWLOrTYSt+xKRlaCs2l5cWLX5Z7HqBchOlO+OQhAwv/haWgz8AwuOW8cP8+6ZtJUO7eEZ9sv4AQYUO8EkZcS3Nxo5wOlyDoA+ERM1kH/SZf/IxJ83NcX9N49X lean@linweibingdeMacBook-Air.local
15. Linux上常用软件安装
软件安装的方式有三种:
- 二进制发布包:软件已经针对具体平台编译打包发布,只要解压,修改配置即可
- RPM发布包:软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装。(小部分的发布包也会遵循RPM的命令方式进行发布)
- Yum在线安装:软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上存在的rpm软件,并且会自动解决软件安装过程中的库依赖问题。本节重点旨在构建Yum本地仓库。
- 源码编译安装:软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署。
15.1 二进制发布包-JDK安装
上传jdk压缩包,通过sftp工具上传即可
解压jdk压缩包
tar -zxvf jdk-7u67-linux-x64.gz -C /usr/local/
修改环境变量PATH
vi /etc/profile ## 在文件最后加两行: export JAVA_HOME=/usr/local/jdk1.7.0_67 export PATH=$PATH:$JAVA_HOME/bin
环境变量生效
source /etc/profile
15.2 二进制发布包-Tomcat安装
上传Tomcat压缩包,通过sftp工具上传即可
解压Tomcat压缩包
tar -zxvf /soft/apache-tomcat-7.0.47.tar.gz -C /usr/local/
进入脚本工具文件夹:
cd /usr/local/apache-tomcat-7.0.47/bin/
启动web网站服务:
[root@linuxmini bin]# ./startup.sh Using CATALINA_BASE: /usr/local/apache-tomcat-7.0.68 Using CATALINA_HOME: /usr/local/apache-tomcat-7.0.68 Using CATALINA_TMPDIR: /usr/local/apache-tomcat-7.0.68/temp Using JRE_HOME: /usr/local/jdk1.7 Using CLASSPATH: /usr/local/apache-tomcat-7.0.68/bin/bootstrap.jar:/usr/local/apache-tomcat-7.0.68/bin/tomcat-juli.jar Tomcat started. [root@linuxmini bin]# netstat -nltp | grep 8080 tcp 0 0 :::8080 :::* LISTEN 9187/java
15.3 RPM发布包-MySql数据库安装
- 安装MySql服务端:
## 1.先装server
[root@linuxmini ~]# rpm -ivh softwares/MySQL-server-5.6.40-1.el6.x86_64.rpm
warning: softwares/MySQL-server-5.6.40-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ########################################### [100%]
file /usr/share/mysql/czech/errmsg.sys from install of MySQL-server-5.6.40-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.73-7.el6.x86_64
file /usr/share/mysql/danish/errmsg.sys from install of MySQL-server-5.6.40-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.73-7.el6.x86_64
...
...
## 2.发现了包冲突,执行删除包的命令解决:
[root@linuxmini ~]# rpm -e mysql-libs-5.1.73-7.el6.x86_64 --nodeps
## 3.然后继续重新安装server
[root@linuxmini ~]# rpm -ivh softwares/MySQL-server-5.6.40-1.el6.x86_64.rpm
Preparing... ########################################### [100%]
1:MySQL-server ########################################### [100%]
## 系统为root用户随机产生了一个密码,可以在'/root/.mysql_secret'找到。
## 必须在第一次连接服务器的时候调用'SET PASSWORD'重置密码
## 另外你也可以使用如下命令:
/usr/bin/mysql_secure_installation
- 安装MySql客户端:
rpm -ivh /root/softwares/MySQL-client-5.6.40-1.el6.x86_64.rpm
warning: /root/softwares/MySQL-client-5.6.40-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ########################################### [100%]
1:MySQL-client ########################################### [100%]
- 启动服务:
[root@linuxmini ~]# service mysql start
Starting MySQL.Logging to '/var/lib/mysql/linuxmini.err'.
..... [ OK ]
[root@linuxmini ~]# service mysql status
MySQL running (9539) [ OK ]
- 利用客户端登陆MySql服务端:
[root@linuxmini ~]# cat /root/.mysql_secret
# The random password set for the root user at Mon May 7 15:28:29 2018 (local time): LAq6SLdvMl3CyzEo
[root@linuxmini ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.40
...
mysql> show databases;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql> SET PASSWORD = PASSWORD('root');
Query OK, 0 rows affected (0.01 sec)
mysql> exit;
Bye
[root@linuxmini ~]# mysql -uroot -proot;
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5...
15.4 Yum程序包安装原理
Yum作为rpm的前端管理工具, 主要实现是在安装程序包时, 通过程序包间的依赖关系, 获取得到该程序包的所有依赖性程序包, 从而实现该程序包的成功安装。
由上面提供的服务来看,Yum应该具备2个功能:收集了程序包之间的依赖,提供所有程序包的仓库。
Yum功能上的实现原理
- Yum可以看作是CS架构的软件
- Server端先对程序包进行分类后存储到不同repository容器中; 再通过收集到大量的rpm的数据库文件中程序包之间的依赖关系数据, 生成对应的依赖关系和所需文件在本地的存放位置的说明文件(.xml格式), 存放在本地的repodata目录下供Client端取用。
- Cilent端通过Yum命令安装软件时发现缺少某些依赖性程序包, Client会根据本地的配置文件(/etc/repodata.d/SERVER.repo)找到指定的Server端。
- 从Server端repo目录下获取说明文件xxx.xml后存储在本地/var/cache/yum中方便以后读取,。
- 通过xxx.xml文件查找到需要安装的依赖性程序包在Server端的存放位置, 再进入Server端yum库中的指定repository容器中获取所需程序包, 下载完成后在本地实现安装。
为了提升下载的速度,我们可以将网络上的Yum源改成本地的,制作私有yum源的两种方式:基于本地磁盘路径和基于内网web服务器的yum源。
内网web服务器yum源配置:
- 在机器上部署一个httpd 的 web服务器,确保httpd运行成功
[root@linuxmini apache-tomcat-7.0.68]# service iptables stop
[root@linuxmini apache-tomcat-7.0.68]# service httpd status
httpd (pid 2474) is running...
- 在httpd服务的web目录中放入rpm库。比如将centos安装光盘中的rpm库放入:
[root@linuxmini dev]# mkdir /var/www/html/centeros/
[root@linuxmini dev]# mkdir /var/www/html/centeros-2/
[root@linuxmini dev]# mount -t iso9660 -o ro /dev/cdrom2 /var/www/html/centeros/
[root@linuxmini dev]# mount -t iso9660 -o ro /dev/cdrom1 /var/www/html/centeros-2/
[root@linuxmini dev]# ll /var/www/html/centeros/
total 558
-r--r--r--. 2 root root 14 May 22 2016 CentOS_BuildTag
dr-xr-xr-x. 3 root root 2048 May 22 2016 EFI
-r--r--r--. 2 root root 212 Nov 27 2013 EULA
-r--r--r--. 2 root root 18009 Nov 27 2013 GPL
dr-xr-xr-x. 3 root root 2048 May 22 2016 images
dr-xr-xr-x. 2 root root 2048 May 22 2016 isolinux
dr-xr-xr-x. 2 root root 528384 May 22 2016 Packages
-r--r--r--. 2 root root 1359 May 21 2016 RELEASE-NOTES-en-US.html
dr-xr-xr-x. 2 root root 4096 May 22 2016 repodata
-r--r--r--. 2 root root 1706 Nov 27 2013 RPM-GPG-KEY-CentOS-6
-r--r--r--. 2 root root 1730 Nov 27 2013 RPM-GPG-KEY-CentOS-Debug-6
-r--r--r--. 2 root root 1730 Nov 27 2013 RPM-GPG-KEY-CentOS-Security-6
-r--r--r--. 2 root root 1734 Nov 27 2013 RPM-GPG-KEY-CentOS-Testing-6
-r--r--r--. 1 root root 3380 May 22 2016 TRANS.TBL
- 打开网页
修改yum的repo库配置文件/etc/yum.repos.d/centos-local-web.repo
[root@linuxmini dev]# cd /etc/yum.repos.d/ [root@linuxmini yum.repos.d]# rename .repo .repo.bak * [root@linuxmini yum.repos.d]# cp CentOS-Media.repo.bak centos-local-web.repo [root@linuxmini yum.repos.d]# vi centos-local-web.repo
内容如下:
[c6-local-web] name=CentOS-local-web baseurl=http://192.168.7.160:80/centeros/ ## 设置yum的软件库地址为.../centeros/ http://192.168.7.160:80/centeros-2/ gpgcheck=0 ##设置不检查 enabled=1 ##启动该配置 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
以Tomcat为例,实现下载:
[root@linuxmini yum.repos.d]# yum list | grep tomcat ... //如果当前当前Tomcat进程正在运行 直接停止 //jps jdk工具命令 [root@linuxmini yum.repos.d]# jps 5964 Bootstrap 3162 Jps [root@linuxmini yum.repos.d]# kill -9 5964 [root@linuxmini yum.repos.d]# yum list | grep tomcat // -y 表示安装的过程中确认添加相关依赖 不用再次确认 [root@linuxmini yum.repos.d]# yum install -y tomcat6.noarch [root@linuxmini yum.repos.d]# service --status-all | grep tomcat dnsdomainname: Host name lookup failure grep: /proc/fs/nfsd/portlist: No such file or directory tomcat6 is stopped [ OK ] [root@linuxmini yum.repos.d]# service tomcat6 start Starting tomcat6: [ OK ]
15.5 源码编译安装-redis
到官网下载最新stable版
解压源码并进入目录 tar -zxvf redis-2.8.19.tar.gz -C ./redis-src/
make
如果报错提示缺少gcc,则安装gcc : yum install -y gcc
如果报错提示:Newer version of jemalloc required 则在make时加参数:make MALLOC=libc
安装redis,指定安装目录,如 /usr/local/redis
make PREFIX=/usr/local/redis install
拷贝一份配置文件到安装目录下
切换到源码目录,里面有一份配置文件 redis.conf,然后将其拷贝到安装路径下
cp redis.conf /usr/local/redis/
启动redis
cd /usr/local/redis
bin/redis-server redis.conf
16. 防火墙设置
防火墙根据配置文件/etc/sysconfig/iptables来控制本机的“出、入”网络访问行为。其对行为的配置策略有四个策略表:
- raw表:用来决定是否对数据包进行状态跟踪。(不常用)
- mangle表:为数据包设置标记,有ACK、SYN、FIN、RST、PSH、URG等标记。(不常用)
- nat表:修改数据包的IP地址、端口等信息。(网关型防火墙常用)
- filter表:确定是否放行数据包。(常用)
对于路由,需要掌握如何开启,查看状态,关闭服务。如下:
- 查看防火墙状态 service iptables status
- 关闭防火墙 service iptables stop
- 启动防火墙 service iptables start
- 禁止防火墙自启 chkconfig iptables off
[root@linuxmini ~]# service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
- prot:协议类型
- source : 0.0.0.0/0 代表任何访问机器的IP和任何端口
- destination:0.0.0.0/0 本机的任何网卡IP和端口
练习:
- 禁止ssh登陆(若果服务器在机房,一定要小心) iptables -A INPUT -p tcp –dport 22 -j DROP
- 加入一条INPUT规则开放80端口 iptables -I INPUT -p tcp –dport 80 -j ACCEPT
- 清除所有规则 iptables -F
- 保存配置 service iptables save.
17. 高级文本处理命令
17.1 cut命令
cut命令可以从一个文本文件或者文本流中提取文本列。它会首先将一个文本以分隔符的形式分成多行,然后选出某个符合条件的文本列。
语法
cut -d'分隔字符' -f fields ## 用于有特定分隔字符
cut -c 字符区间 ## 用于排列整齐的信息
选项与参数:
-d:后面接分隔字符。与 -f 一起使用;
-f:依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;
-c:以字符 (characters) 的单位取出固定字符区间;
示例:
[root@linuxmini ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk1.7/bin:/root/bin
##找出第5个数据
[root@linuxmini ~]# echo $PATH | cut -d ':' -f 5
/bin
##找出第3个,第5个数据
[root@linuxmini ~]# echo $PATH | cut -d ':' -f 3,5
/usr/local/bin:/bin
##找出3到最后的数据
[root@linuxmini ~]# echo $PATH | cut -d ':' -f 3-
/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk1.7/bin:/root/bin
##找出第1,第2,从6到最后的数据
[root@linuxmini ~]# echo $PATH | cut -d ':' -f 1-2,6
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin
17.2 sed命令
sed命令可以实现删除/替换 某些符合条件的行并显示,但是它不会对原文件进行修改。
语法:
##删除:d命令
sed '2d' example -----删除example文件的第二行。
sed '2,$d' example -----删除example文件的第二行到末尾所有行。
sed '$d' example -----删除example文件的最后一行。
sed '/test/'d example-----删除example文件所有包含test的行。
示例:
[root@linuxmini ~]# cat test.txt
a11111111111
b2222222
c33333333
d44444
e5555555
f66666666
h777777
j66666666
[root@linuxmini ~]# sed '2,$d' test.txt
a11111111111
[root@linuxmini ~]# sed '$d' test.txt
a11111111111
b2222222
c33333333
d44444
e5555555
f66666666
h777777
[root@linuxmini ~]# sed '/6666/'d test.txt
a11111111111
b2222222
c33333333
d44444
e5555555
h777777
语法:
##替换:s命令
$ sed 's/test/mytest/g' example
在整行范围内把test替换为mytest。如果没有g标记,则只替换每行第一个。
$ sed -n 's/^test/mytest/p' example
(-n)选项和p标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的test被替换成mytest,就打印它。
$ sed 's/^192.168.0.1/&localhost/' example
如果某一行以192.168l.0.1开头,则在其后添加localhost。
$ sed -n '/test/,/check/p' example
存在字符test和check的行都被打印。
$ sed -n '5,/^test/p' example
打印从第五行开始到第一个包含以test开始的行之间的所有行。
语法:
## 如下代码不做演示
文件读入:将file里的内容被读进来,显示在与test匹配行下面,如匹配多行则file的内容将显示在所有匹配行的下面。
$ sed '/test/r file' example
写入文件:在example中所有包含test的行都被写入file里。
$ sed -n '/test/w file' example
追加命令:a命令
$ sed '/^test/a\\--->this is a example' example
## '--->this is a example'被追加到以test开头的行后面,sed要求命令a后面有一个反斜杠。
插入:i命令 如果test被匹配,则把反斜杠后面的文本插入到匹配行的前面。
$ sed '/test/i\\some thing new -------------------------' example
下一个:n命令 如果test被匹配,则移动到匹配行的下一行,替换这一行的aa,变为bb,并打印该行,然后继续。
$ sed '/test/{ n; s/aa/bb/; }' example
退出:q命令 打印完第10行后,退出sed。
$ sed '10q' example
17.3 awk命令
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
案例1
假设last -n 5的输出如下
[root@www ~]# last -n 5 ## 仅取出前五行
root pts/1 192.168.1.100 Tue Feb 10 11:21 still logged in
root pts/1 192.168.1.100 Tue Feb 10 00:46 - 02:28 (01:41)
root pts/1 192.168.1.100 Mon Feb 9 11:41 - 18:30 (06:48)
dmtsai pts/1 192.168.1.100 Mon Feb 9 11:41 - 11:41 (00:00)
root tty1 Fri Sep 5 14:09 - 14:10 (00:01)
如果只是显示最近登录的5个帐号
# last -n 5 | awk '{print $1}'
root
root
root
dmtsai
root
## awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键",所以$1表示登录用户,$3表示登录用户ip,以此类推。
案例2
如果只是显示/etc/passwd的账户。
这种是awk+action的示例,每行都会执行action{print $1}。-F指定域分隔符为':'
# cat /etc/passwd |awk -F ':' '{print $1}'
root
daemon
bin
sys
如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割
#cat /etc/passwd |awk -F ':' '{print $1"\-----"$7}'
root /bin/bash
daemon /bin/sh
bin /bin/sh
sys /bin/sh
如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加"blue,/bin/nosh"。
cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}'
name,shell
root,/bin/bash
daemon,/bin/sh
bin,/bin/sh
sys,/bin/sh
....
blue,/bin/nosh
案例3
## 如下代码不做演示
搜索/etc/passwd有root关键字的所有行
#awk -F: '/root/' /etc/passwd
root:x:0:0:root:/root:/bin/bash
统计/etc/passwd:文件名,每行的行号,每行的列数,对应的完整行内容:
#awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}' /etc/passwd
filename:/etc/passwd,linenumber:1,columns:7,linecontent:root:x:0:0:root:/root:/bin/bash
filename:/etc/passwd,linenumber:2,columns:7,linecontent:daemon:x:1:1:daemon:/usr/sbin:/bin/sh
filename:/etc/passwd,linenumber:3,columns:7,linecontent:bin:x:2:2:bin:/bin:/bin/sh
filename:/etc/passwd,linenumber:4,columns:7,linecontent:sys:x:3:3:sys:/dev:/bin/sh
使用printf替代print,可以让代码更加简洁,易读
awk -F ':' '{printf("filename:%s,linenumber:%s,columns:%s,linecontent:%s\n",FILENAME,NR,NF,$0)}' /etc/passwd
18. crontab定时器配置
通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。使用该功能首先需要启动服务:
yum install crontabs
服务操作说明:
service crond status ## 查看crontab服务状态
service crond start ## 启动服务
service crond stop ## 关闭服务
service crond restart ## 重启服务
service crond reload ## 重新载入配置
chkconfig --list ## 查看crontab服务是否已设置为开机启动,执行命令:
chkconfig --level 35 crond on ## 加入开机自动启动:
语法:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
参数说明:
-u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:删除定时任务配置,从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
命令示例:
crontab file [-u user]## 用指定的文件替代目前的crontab。
必掌握:
crontab -l [-u user]## 列出用户目前的crontab.
crontab -e [-u user]## 编辑用户目前的crontab.
调度配置基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时0~23(0表示0点) 7-9表示:8点到10点之间
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
配置示例
30 21 * * * /usr/local/etc/rc.d/httpd restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/httpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache
10 1 * * 6,0 /usr/local/etc/rc.d/httpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/httpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
* 23-7/1 * * * /usr/local/etc/rc.d/httpd restart
上面的例子晚上11点到早上7点之间,每隔一小时重启apache
*/1 * * * * date >> /root/date.txt
上面的例子表示每分钟执行一次date命令
案例:每分钟将时间写入到文件中。
[root@linuxmini ~]# crontab -e
*/1 * * * * date >> date.txt
[root@linuxmini ~]# crontab -l
*/1 * * * * date >> date.txt