Ⅰ linux脚本时间变量调用
你的变量定义格式有误,变量调用系统命令时的格式:
TIME=$(date-d'1dayago'"+%Y%m%d")
或
TIME=`date-d'1dayago'"+%Y%m%d"`
#推荐使用第一种方式,看起来比较直观也容易避免一些问题
完整的脚本如下:
在/root/目录下创建名为 tar_log.sh的sh文件
#!/bin/bash
TIME=$(date-d'1dayago'"+%Y%m%d")
logdir="#日志存放位置"
cd$logdir/
tar-zcfip-${TIME}.tar.gzip-${TIME}.txt
crontab 设置如下:
0000***/bin/bash/root/tar_log.sh
Ⅱ linux下怎么定时执行脚本
配置定时任务或者说计划任务,设定在你需要的时间执行脚本
写好脚本,再通过crontab -e设置定时任务,然后通过crontab -l查看定时任务。
Ⅲ 求:linux 监控shell脚本运行时间
你的意思是某个进程不能不能超过5分钟,否则触发某个事件比如发送邮件或短信?
如果是这样,脚本很好控制
直接在运行前记录一个时间,然后创建一个lock文件
如果脚本完成,删除pid
再sleep 300秒后判断lock文件是否存在,如果不存在,退出,如果存在,报警,退出。
Ⅳ 在linux下怎么让一个脚本定时运行
Linux中,周期执行的任务一般由cron这个守护进程来处理 ps -ef | grep cron
cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
cron的配置文件称为“crontab”,是“cron table”的简写。
Ⅳ linux中怎么让一个shell脚本分别在凌晨00点和中午12点运行一次
linux中有计划任务服务
有经验的系统运维工程师能够让系统自动化运行,无需人工的干预就可以让各个服务、命令在指定的时间段运行、停止。
了解计划任务:http://www.linuxprobe.com/chapter-04.html#44
实际上这些操作都是由系统的计划任务功能完成的,而计划任务又有“一次性”与“长期性”之分,可以理解为:
一次性计划任务:今晚11点30分开启网站服务(例如新网站的公测)
长期性计划任务:每周1、3、5的凌晨3点25分将/home/wwwroot目录打包备份为backup.tar.gz
先来讲一次性任务吧,它是由atd服务/进程来实现的,计划的管理操作是"at"命令,具体的可用参数如下:
参数 作用
at <时间> 安排一次性任务
atq或at -l 查看任务列表
at -c 序号 预览任务与设置环境
atrm 序号 删除任务
一般用at命令创建计划任务有交互式与非交互式两种方法,先来看看交换式的方法,(输完成后敲击Ctrl+d来保存退出):
[root@linuxprobe ~]# at 23:30
at > systemctl start httpd
at >
job 3 at Mon Apr 27 23:30:00 2015
[root@linuxprobe ~]# atq
3 Mon Apr 27 23:30:00 2015 a root
直接用echo语句将要执行的命令传送给at命令:
[root@linuxprobe ~]# echo "systemctl start httpd" | at 23:30
job 4 at Mon Apr 27 23:30:00 2015
[root@linuxprobe ~]# atq
3 Mon Apr 27 23:30:00 2015 a root
4 Mon Apr 27 23:30:00 2015 a root
删除的时候只需要用atrm命令与任务编号就可以啦~
[root@linuxprobe ~]# atrm 3
[root@linuxprobe ~]# atrm 4
[root@linuxprobe ~]# atq
对于创建长期可循环的计划任务,则要用到cron服务啦,具体使用方法如下:
创建、编辑计划任务:crontab -e [-u 用户名]
查看计划任务:crontab -l [-u 用户名]
删除计划任务:crontab -r [-u 用户名]
其中在创建、编辑计划任务时有个固定的格式,请读者们一定要记住。
字段 说明
分钟 取值为从0到59之间的整数
小时 取值为从0到23之间的任意整数
日期 取值为1到31之间的任意整数
月份 取值为1到12之间的任意整数
星期 取值为0到7之间的任意整数,其中0与7均为星期日
命令 要执行的命令或程序脚本
需要用cron计划任务实现的功能:"每周1、3、5的凌晨3点25分将/home/wwwroot目录打包备份为backup.tar.gz"
编辑root用户自己的计划任务:
[root@linuxprobe ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
使用"crontab -l"命令查看计划任务的内容:
[root@linuxprobe ~]# crontab -l
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot
如果想对某个用户设置多个计划任务,则可直接用"crontab -e"命令将命令逐条添加即可,让计划任务自动在每周1-5的凌晨1点打包网站目录后自动清除/tmp目录下的所有文件::
[root@linuxprobe ~]# crontab -e
crontab: installing new crontab
[root@linuxprobe ~]# 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/*
Ⅵ 求教linux里边脚本,实现:特定时间运行某条命令
使用crontab命令就可以,先写一个命令复制的脚本:
1、vi cp.sh
2、cp.sh内容如下
#/bin/sh
cp /home/123.txt /root
reboot
3、把这个脚本放在/home/cp.sh
4、crontab -e 在里面添加相应的命令如:
0 9 1 5 * /home/cp.sh
5、提交任务:crontab -u root /home/cp.sh (这里的root可以替换为要指执行任务的用户)
Ⅶ linux系统如何让一个脚本每十分钟运行一次
crontab -e
*/10 * * * * shell
Ⅷ 请教Linux系统设置定时执行脚本问题crontab
跟据你的描述,感谢你的设置没有问题,像是测试方法不合适。
crontab是每分钟执行一次,所以不一定一到23点马上执行。
你多等一分钟看看。
Ⅸ Linux中用cron计划定期执行脚本
1、date可以显示年月日时分秒,举个例子
today=`date +%Y%m%d%H%M%S`
echo ${today}
2、date +%d可以取日期
date +%d再-d tomorrow是想看第二天的日期。
3、你说的例子是如果月末最后一天就执行,因为月末数字不好判断,所以用明天是1号判断,当天肯定是月末。