crontab执行shell脚本
㈠ 怎把写好的shell脚本加入到crontab里面
如果要执行一个每5分钟执行一次的脚本的话
方法1:
echo
"*/5
*
*
*
*
路径/脚本shell">>/etc/crontab
系统就会自动执行了
方法2:
1
执行
crontab
-e
2
在vi中编辑
如*/5
*
*
*
*
决定路径/脚本shell
3保存
系统就会自动执行了,会把执行过程的信息发到你所在的用户mail
里面。
mail路径:/usr/spool/mail/cebzh(用户名)
。若是你不希望收到这样的信,请在每一行空一格之后加上
>
/dev/null
2>&1
即可
。
-------------------------------------
基本格式
:
*****command
分时日月周命令
第1列表示分钟1~59
(每分钟用*或者
*/1表示,*/5
代表每5分钟)
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
㈡ crontab下执行shell脚本报错
uncommu.sql前需要添加绝对路径
㈢ 如何通过crontab设置脚本自动执行
使用crontab你可以在指定的时间执行一个shell脚本或者一系列linux命令。例如系统管理员安排一个备份任务使其每天都运行
如何往
cron
中添加一个作业?
#
crontab
–e
0
5
*
*
*
/root/bin/backup.sh
这将会在每天早上5点运行
/root/bin/backup.sh
Cron
各项的描述
以下是
crontab
文件的格式:
{minute}
{hour}
{day-of-month}
{month}
{day-of-week}
{full-path-to-shell-script}
o
minute:
区间为
0
–
59
o
hour:
区间为0
–
23
o
day-of-month:
区间为0
–
31
o
month:
区间为1
–
12.
1
是1月.
12是12月.
o
Day-of-week:
区间为0
–
7.
周日可以是0或7.
Crontab
示例
1.
在
12:01
a.m
运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。
1
0
*
*
*
/root/bin/backup.sh
2.
每个工作日(Mon
–
Fri)
11:59
p.m
都进行备份作业。
59
11
*
*
1,2,3,4,5
/root/bin/backup.sh
下面例子与上面的例子效果一样:
59
11
*
*
1-5
/root/bin/backup.sh
3.
每5分钟运行一次命令
*/5
*
*
*
*
/root/bin/check-status.sh
4.
每个月的第一天
1:10
p.m
运行
10
13
1
*
*
/root/bin/full-backup.sh
5.
每个工作日
11
p.m
运行。
0
23
*
*
1-5
/root/bin/incremental-backup.sh
Crontab
选项
以下是
crontab
的有效选项:
o
crontab
–e
:
修改
crontab
文件.
如果文件不存在会自动创建。
o
crontab
–l
:
显示
crontab
文件。
o
crontab
-r
:
删除
crontab
文件。
o
crontab
-ir
:
删除
crontab
文件前提醒用户。
以上就是crontab命令的具体使用方法了。
自己写一个脚本试试就可以了,比如一个简单的复制备份脚本
#!/usr/bin/env
bash
cp
-a
/usr/local/Hadoop
/home/hadoop/hadoop
㈣ 如何让crontab执行脚本后并且把日志输出到另一个文件
直接crontab -e添加执行脚本,然后给执行脚本加个重定向到文件就行了。
例如:3023***/path/to/shell/script >> /path/to/log/file #表示每晚的23:30执行/path/to/shell/script脚本,并且把结果重定向输出到/path/to/log/file文件。
crontab参数:
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。
crontab的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下: minute hour day month week command,时间字段都是整数, command:要执行的命令,可以是系统命令,也可以是自己编写的shell脚本文件。 在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,全部。
逗号(,):可以用逗号隔开的值指定一个列表范围。
中杠(-):可以用整数之间的中杠表示一个整数范围。
正斜线(/):可以用正斜线指定时间的间隔频率。
㈤ crontab中启动的shell脚本不能正常运行,但是使用手动执行没有问题
1、这种情况多数为环境变量加载问题
2、例如你用ls命令,其实依赖PATH环境变量
3、可以改为全路径,比如/bin/ls
4、或者将环境变量加载到脚本
#!/bin/sh
. ~/.bash_profile
ls -lrt $*
㈥ 求助crontab执行shell脚本的问题
1)网上搜索一下crontab的格式
2)例如,编辑一个文件a.txt
$ cat a.txt
30 21 * * * /home/user/y.sh
表示每晚21:30运行脚本/home/user/y.sh
3)运行下面的命令,将a.txt的内容“弄”到crontab里面:
$ crontab a.txt
4)运行下面的命令,可见,a.txt的内容已经“进入”到crontab里面
$ crontab -l
30 21 * * * /home/user/y.sh
5)运行chmod +x /home/user/y.sh确保脚本可执行。
㈦ shell脚本crontab导入java配置
进行脚本调用。
环境:linux操作系统、用户:普通用户(无root权限)、系统java web(ssh框架)目标:通过crontab定时每天1点执行系统中的action方法,该action方法调用接口,把系统中特定信息上传到另一系统。现假设action方法已经写好,目前要做的就是配置crontab调用action。思路:创建shell脚本,调用java;通过crontab定时调用shell脚本。
㈧ 如何用crontab执行脚本文件
使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如系统管理员安排一个备份任务使其每天都运行
如何往 cron 中添加一个作业?
# crontab –e
0 5 * * * /root/bin/backup.sh
这将会在每天早上5点运行 /root/bin/backup.sh
Cron 各项的描述
以下是 crontab 文件的格式:
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
o minute: 区间为 0 – 59
o hour: 区间为0 – 23
o day-of-month: 区间为0 – 31
o month: 区间为1 – 12. 1 是1月. 12是12月.
o Day-of-week: 区间为0 – 7. 周日可以是0或7.
Crontab 示例
1. 在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。
1 0 * * * /root/bin/backup.sh
2. 每个工作日(Mon – Fri) 11:59 p.m 都进行备份作业。
59 11 * * 1,2,3,4,5 /root/bin/backup.sh
下面例子与上面的例子效果一样:
59 11 * * 1-5 /root/bin/backup.sh
3. 每5分钟运行一次命令
*/5 * * * * /root/bin/check-status.sh
4. 每个月的第一天 1:10 p.m 运行
10 13 1 * * /root/bin/full-backup.sh
5. 每个工作日 11 p.m 运行。
0 23 * * 1-5 /root/bin/incremental-backup.sh
Crontab 选项
以下是 crontab 的有效选项:
o crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。
o crontab –l : 显示 crontab 文件。
o crontab -r : 删除 crontab 文件。
o crontab -ir : 删除 crontab 文件前提醒用户。
以上就是crontab命令的具体使用方法了。
自己写一个脚本试试就可以了,比如一个简单的复制备份脚本
#!/usr/bin/env bash
cp -a /usr/local/Hadoop /home/hadoop/hadoop
㈨ 如何使用crontab调度一个执行一个shell脚本时需要输入用户名和密码
linux下使用crontab命令被用来提交和管理用户的需要周期性执行的任务,示例如下:
crontab -e 编辑周期任务
30 21 * * * /etc/init.d/smb restart 每晚的21:30重启smb
crontab命令说明:
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
语法
crontab(选项)(参数)
选项
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u:指定要设定计时器的用户名称。
参数
crontab文件:指定包含待执行任务的crontab文件。
知识扩展
Linux下的任务调度分为两类:系统任务调度和用户任务调度。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
crontab文件的含义:
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command 顺序:分 时 日 月 周
其中:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
㈩ shell脚本 手动执行成功,crontab执行缺少数据
sh /usr/local/sbin/gdas/start.sh
改为
source /usr/local/sbin/gdas/start.sh
用sh方式去执行就是另开一个shell去跑,相当于是异步的,不等start.sh执行完就执行下面的判断了。用source在当前shell执行该脚本,就是阻塞方式,就不存在此问题了。
建议先手动执行脚本,检验无误了再加入crontab