linux定时执行shell脚本(在Linux下怎样设定一个时间自动执行一个SQL的shell脚本文件,例如:auto.sh)

本文目录
- 在Linux下怎样设定一个时间自动执行一个SQL的shell脚本文件,例如:auto.sh
- linux定时执行任务的shell脚本怎么写
- Linux 系统 shell脚本定时 清空系统日志文件
- linux 在screen下定时执行脚本
- 在linux中,run.sh是一个shell执行脚本
- 在linux下怎么让一个脚本定时运行
- 在Linux下数据库中怎样设定一个时间自动执行一个shell脚本文件,例如:auto.sh
- linux中怎么让一个shell脚本分别在凌晨00点和中午12点运行一次
在Linux下怎样设定一个时间自动执行一个SQL的shell脚本文件,例如:auto.sh
使用crontab定时任务
crontab -e 进入
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
***隐藏网址***
上面的例子表示每晚的21:30重启apache。
***隐藏网址***
上面的例子表示每月1、10、22日的4 : 45重启apache。
***隐藏网址***
上面的例子表示每周六、周日的1 : 10重启apache。
***隐藏网址***
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
***隐藏网址***
上面的例子表示每星期六的11 : 00 pm重启apache。
***隐藏网址***
每一小时重启apache
***隐藏网址***
晚上11点到早上7点之间,每隔一小时重启apache
***隐藏网址***
每月的4号与每周一到周三的11点重启apache
***隐藏网址***
一月一号的4点重启apache
名称 : crontab
使用权限 : 所有使用者
使用方式 :
crontab file -用指定的文件替代目前的crontab。
crontab--用标准输入替代目前的crontab.
crontab-1-列出用户目前的crontab.
crontab-e-用户目前的crontab.
crontab-d-删除用户目前的crontab.
crontab-c dir- 指定crontab的目录。
crontab文件的格式:M H D m d cmd.
M: 分钟(0-59)。
H:小时(0-23)。
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量
说明 :
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定
user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设
定自己的时程表。
参数 :
crontab -e : 执行文字器来设定时程表,内定的文字器是 VI,如果你想用别的文字器,则请先设定 VISUAL 环境变数
来指定使用那个文字器(比如说 setenv VISUAL joe)
crontab -r : 删除目前的时程表
crontab -l : 列出目前的时程表
crontab file -用指定的文件替代目前的crontab。
时程表的格式如下 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执
行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
例子 :
#每天早上7点执行一次 /bin/ls :
0 7 * * * /bin/ls
在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
周一到周五每天下午 5:00 寄一封信给 alex@domain.name :
0 17 * * 1-5 mail -s "hi" alex@domain.name 《 /tmp/maildata
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"
注意 :
当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之
后加上 》 /dev/null 2》&1 即可
例子2 :
#每天早上6点10分
10 6 * * * date
#每两个小时
0 */2 * * * date
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
#1月份日早上4点
0 4 1 jan * date
范例
$crontab -l 列出用户目前的crontab.
希望能够帮到你。
linux定时执行任务的shell脚本怎么写
linux下使用crontab命令被用来提交和管理用户的需要周期性执行的任务,示例如下:
crontab
-e
周期任务
30
21
*
*
*
/etc/init.d/smb
restart
每晚的21:30重启smb
crontab命令说明:
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
选项
-e:该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u《用户名称》:指定要设定计时器的用户名称。
参数
crontab文件:指定包含待执行任务的crontab文件。
Linux 系统 shell脚本定时 清空系统日志文件
其实没有必要写shell脚本,简单一句话放在系统定时任务里就行了。
比如你的日志文件名叫a.log。路径为/tmp/a.log;
那么你可以写个定时任务,这样做:crontab -e 进入定时任务器,然后把下面这段写到里面
00 02 * * * echo " " 》/tmp/a.log
然后保存退出就可以了。这段内容意思是,每天凌晨2点自动清空a.log内容。你也可以自己定义多久清一次。比如想10分钟清一次,就这么写*/10 * * * * echo " " 》/tmp/a.log。具体的crontab时间定义你可以去百度查查。希望对您有用!
linux 在screen下定时执行脚本
首先查看一下/etc/crontab文件:
$ cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
前四行是有关设置cron任务运行的环境变量。SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell),PATH变量定义了执行命令的路径。Cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。如果MAILTO变量定义为空字符串(MAILTO=""),电子邮件不会被发送。执行命令或脚本时HOME变量可用来设置基目录。
文件/etc/crontab中每行任务的描述格式如下:
minute hour day month dayofweek command
minute - 从0到59的整数
hour - 从0到23的整数
day - 从1到31的整数 (必须是指定月份的有效日期)
month - 从1到12的整数 (或如Jan或Feb简写的月份)
dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
command - 需要执行的命令(可用as ls /proc 》》 /tmp/proc或 执行自定义脚本的命令)
root表示以root用户身份来运行
run-parts表示后面跟着的是一个文件夹,要执行的是该文件夹下的所有脚本
对于以上各语句,星号(*)表示所有可用的值。例如*在指代month时表示每月执行(需要符合其他限制条件)该命令。
整数间的连字号(-)表示整数列,例如1-4意思是整数1,2,3,4
指定数值由逗号分开。如:3,4,6,8表示这四个指定整数。
符号“/”指定步进设置。“/《interger》”表示步进值。如0-59/2定义每两分钟执行一次。步进值也可用星号表示。如*/3用来运行每三个月份运行指定任务。
以“#”开头的为注释行,不会被执行。
如果一个cron任务需要定期而不是按小时,天,周,月来执行,则需要添加/etc/cron.d目录。这个目录下的所有文件和文件/etc/crontab语法相同,查看样例:
# record the memory usage of the system every monday
# at 3:30AM in the file /tmp/meminfo
30 3 * * mon cat /proc/meminfo 》》 /tmp/meminfo
# run custom scrīpt the first day of every month at 4:10AM
10 4 1 * * /root/scrīpts/backup.sh
除了root用户之外的用户可以执行crontab配置计划任务。所有用户定义的crontab存储在目录/var/spool/cron下,任务会以创建者的身份被执行。要以特定用户创建一个crontab,先以该用户登录,执行命令crontab -e,系统会启动在VISUAL或者EDITOR中指定的的软件crontab。文件内容与/etc/crontab格式相同。示例如下:
0 3 * * * /home/dbbackup/db1backup.sh backup
0 4 * * * /home/dbbackup/db2backup.sh backup
表示每天3点执行/home/dbbackup/db1backup.sh backup,4点执行/home/dbbackup/db2backup.sh backup,如果是每五分钟执行一次可改为:
*/5 * * * * /home/dbbackup/db2backup.sh backup
当更改的crontab需要保存时,文件会保存在成如下文件/var/spool/cron/username。文件名会根据用户名而不同。
cron服务会每分钟检查一次/etc/crontab、/etc/cron.d/、/var/spool/cron文件下的变更。如果发现变化,就会下载到存储器中。因此,即使crontab文件改变了,程序也不需要重新启动。推荐自定义的任务使用crontab -e命令添加,退出后用/etc/init.d/crond restart命令重启crond进程,官方文件说不用重启进程,但我遇到不重启无法运行任务的情况。开始不知道/etc/crontab文件中的run-parts是什么意思,直接把命令按照/etc/crontab的格式加上总是无法运行,后来才知道run-parts是指后面跟着的是文件夹。
在linux中,run.sh是一个shell执行脚本
是。Linux是一套免费使用和自由传播的类Unix操作系统,在linux中,run.sh是一个shell执行脚本,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
在linux下怎么让一个脚本定时运行
Linux中,周期执行的任务一般由cron这个守护进程来处理 ps -ef | grep cron
cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
cron的配置文件称为“crontab”,是“cron table”的简写。
一、 cron在3个地方查找配置文件(设置shell脚本):
1、/var/spool/cron/yanggang 这个目录下存放的是每个用户(包括root)的crontab任务,每个任务以创建者的名字命名,比如用户tom建的crontab任务对应的文件是/var/spool/cron/tomyanggang@barry$ sudo ls -l /var/spool/cron/(或有时是 /var/spool/cron/crontabs/)
-rw------- 1 root crontab 1071 2011-09-19 17:20 root
-rw------- 1 yanggang crontab 1176 2011-09-24 11:07 yanggang
一般一个用户最多只有一个crontab文件(如:root, yanggang等),其对应日志在/var/spool/mail/root(或/var/spool/mail/yanggang)文件里
2、/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR
#sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * command to be executed
例如:
*/5 * * * * root /usr/libexec/atrun
minute:代表一小时内的第几分,范围 0-59。
hour:代表一天中的第几小时,范围 0-23。
mday:代表一个月中的第几天,范围 1-31。
month:代表一年中第几个月,范围 1-12。
wday:代表星期几,范围 0-7 (0及7都是星期天)。
who:要使用什么身份执行该指令,当您使用 crontab -e 时,不必加此字段。
command:所要执行的指令。
3、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
在Linux下数据库中怎样设定一个时间自动执行一个shell脚本文件,例如:auto.sh
Linux数据库应该是无法执行shell脚本的,应该是Linux系统下执行shell脚本吧。
直接在linux下输入crontab -e,然后配置一段代码如下:
01 8 * * * /bin/bash path(你的文件目录)/auto.sh
前五位没记错的话应该分别对应分钟,小时,日,月,星期。
如果你希望保存日志的话可以用输出重定向,如下:
01 8 * * * /bin/bash path(你的文件目录)/auto.sh 》 /tmp/auto.log 2 》 &1 &
这样如果文件执行错误的话,你可以去/tmp目录下去查询错误日志,便于程序的优化。
关于crontab的详细介绍给你个传送门:
***隐藏网址***
我也是菜鸟,共同学习共同进步,祝好。
linux中怎么让一个shell脚本分别在凌晨00点和中午12点运行一次
linux中有计划任务服务
有经验的系统运维工程师能够让系统自动化运行,无需人工的干预就可以让各个服务、命令在指定的时间段运行、停止。
***隐藏网址***
实际上这些操作都是由系统的计划任务功能完成的,而计划任务又有“一次性”与“长期性”之分,可以理解为:
一次性计划任务:今晚11点30分开启网站服务(例如新网站的公测)
长期性计划任务:每周1、3、5的凌晨3点25分将/home/wwwroot目录打包备份为backup.tar.gz
先来讲一次性任务吧,它是由atd服务/进程来实现的,计划的管理操作是"at"命令,具体的可用参数如下:
参数 作用
at 《时间》 安排一次性任务
atq或at -l 查看任务列表
at -c 序号 预览任务与设置环境
atrm 序号 删除任务
一般用at命令创建计划任务有交互式与非交互式两种方法,先来看看交换式的方法,(输完成后敲击Ctrl+d来保存退出):
# at 23:30
***隐藏网址***
at 》
job 3 at Mon Apr 27 23:30:00 2015
# atq
3 Mon Apr 27 23:30:00 2015 a root
直接用echo语句将要执行的命令传送给at命令:
***隐藏网址***
job 4 at Mon Apr 27 23:30:00 2015
# atq
3 Mon Apr 27 23:30:00 2015 a root
4 Mon Apr 27 23:30:00 2015 a root
删除的时候只需要用atrm命令与任务编号就可以啦~
# atrm 3
# atrm 4
# atq
对于创建长期可循环的计划任务,则要用到cron服务啦,具体使用方法如下:
创建、计划任务:crontab -e
查看计划任务:crontab -l
删除计划任务:crontab -r
其中在创建、计划任务时有个固定的格式,请读者们一定要记住。
字段 说明
分钟 取值为从0到59之间的整数
小时 取值为从0到23之间的任意整数
日期 取值为1到31之间的任意整数
月份 取值为1到12之间的任意整数
星期 取值为0到7之间的任意整数,其中0与7均为星期日
命令 要执行的命令或程序脚本
需要用cron计划任务实现的功能:"每周1、3、5的凌晨3点25分将/home/wwwroot目录打包备份为backup.tar.gz"
root用户自己的计划任务:
# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
使用"crontab -l"命令查看计划任务的内容:
# crontab -l
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot
如果想对某个用户设置多个计划任务,则可直接用"crontab -e"命令将命令逐条添加即可,让计划任务自动在每周1-5的凌晨1点打包网站目录后自动清除/tmp目录下的所有文件::
# crontab -e
crontab: installing new crontab
# crontab -l
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot
0 1 * * 1-5 /usr/bin/rm -rf /tmp/*

更多文章:
androidapp源码免费下载(如何实现APK的反编译得到APK的源码)
2026年9月22日 18:00
service pack 3(操作系统版本升级(SP) Service Pack 3当中的“Service Pack 3”是什么意思)
2026年9月22日 10:20
html代码怎么写大佬教程(html网页的题来个大佬,写代码,题目在图上)
2026年9月22日 10:10
结构体内又一个struct(c++ 在结构体中再嵌入一个结构体如何调用)
2026年9月22日 09:40
cocos creator中文(cocoscreator和cocoscreator3d的区别)
2026年9月22日 02:30




