Linux的shell文件如何来执行命令添加计划任务?
发布网友
发布时间:2022-02-26 09:36
我来回答
共6个回答
懂视网
时间:2022-02-26 13:57
产品型号:thinkpad E15
系统版本:centos7
软件版本:crontab 1.5
在linux系统中,执行周期的任务,可以使用crontab。crontab会把你指定的工作或任务,按照你设定的周期一直循环执行下去启动crond服务[root@xuegod63 ~]# systemctl start crond
crontab具体计划任务书写格式:
* * * * * command需要执行的命令
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列表示星期0~6(星期日用0或7表示)
第6列要运行的命令
一行对应一个任务,特殊符号的含义:
* 代表取值范围内的数字 (每)
/ 指定时间的间隔频率 */10 0-23/2
- 代表从某个数字到某个数字 8-17
, 分开几个离散的数字 6,10-13,20
创建计划任务
例1:每天凌晨2点1分开始备份数据
[root@xuegod63 spool]# crontab -e #添加计划任务
1 2 * * * tar zcvf /opt/grub2.tar.gz /boot/grub2
[root@xuegod63 ~]# crontab -l #查看
例2:以非root用户添加计划任务。 这里使用bin用户来添加
[root@xuegod63 ~]# crontab -u bin -e
*/10 * * * * echo "aaaaaaa" >> /tmp/bin.txt
系统级别的计划任务
[root@xuegod63 etc]# vim /etc/crontab
1 2 * * * root echo "aaaaaaa" >> /tmp/1.txt
热心网友
时间:2022-02-26 11:05
crontab 命令
crontab -e ——>编辑当前用户的crontab任务;
crontab -l ——>列出当前用户的crontab任务;
crontab -r ——>删除当前用户的crontab任务;
crontab书写格式
PS:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作;
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”;
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”;
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次;
热心网友
时间:2022-02-26 12:23
#同步express的备份
10 0 * * * /opt/dts_rsync.sh &
#导入备份文件
01 7 * * * /opt/dts_input.sh &
那么需要的做的就是提取下载完成时间,然后将导入备份文件时间中的小时部分增加1小时。
由于shell无法直接编辑任务计划。
可以将任务计划内容写入到一个txt文件,然后使用命令将txt的内容覆盖至任务计划
命令如下:
/usr/bin/crontab /opt/cron.txt
完整的shell脚本cron如下:
#!/bin/bash
echo "#######################" >> /opt/cron.log
#记录执行时间
statime=`date +%Y-%m-%d" "%H:%M:%S`
echo "$statime" >> /opt/cron.log
#任务计划开始时间,提取小时
a=`cat /opt/cron.txt | grep dts_input.sh | awk '{print $2}'`
#传输完成时间,提取小时
b=`tail -1 /tmp/dts_message.log | awk '{print $2}' | cut -d ":" -f 1`
echo "任务计划开始时间$a" >> /opt/cron.log
echo "传输完成时间$b" >> /opt/cron.log
#判断传输完成时间是否大于等于任务计划时间
if [ $b -ge $a ];then
#增加1个小时
c=`/usr/bin/expr $a + 1`
#修改任务计划文件
/bin/sed -i "s/$a/$c/g" /opt/cron.txt
#覆盖任务计划
/usr/bin/crontab /opt/cron.txt
echo "任务计划开始时间状态ERROR,变更小时为$c" >> /opt/cron.log
else
echo "任务计划开始时间状态OK,小时是$a" >> /opt/cron.log
fi
cron.txt内容如下:
#同步express的备份
10 0 * * * /opt/dts_rsync.sh &
#导入备份文件
01 7 * * * /opt/dts_input.sh &
#检查下载时间
01 */1 * * * /opt/cron.sh
#每周日清空日志记录
01 23 * * 0 /opt/clean_log.sh
热心网友
时间:2022-02-26 13:58
1 导出旧的crontab -l > oldcron
2 echo "* * * * * mynewcron" >> oldcron
3 导回去 crontab < oldcron
==
重点是你要理解crontab是怎么工作的:
man crontab
CRONTAB(1) Cronie Users’ Manual CRONTAB(1)
NAME
crontab - maintain crontab files for indivial users
SYNOPSIS
crontab [-u user] file
crontab [-u user] [-l | -r | -e] [-i] [-s]
DESCRIPTION
Crontab is the program used to install, remove or list the tables used
to drive the cron(8) daemon. Each user can have their own crontab, and
though these are files in /var/spool/ , they are not intended to be
edited directly. For SELinux in mls mode can be even more crontabs -
for each range. For more see selinux(8).
The cron jobs could be allow or disallow for different users. For clas-
sical crontab there exists cron.allow and cron.deny files. If
cron.allow file exists, then you must be listed therein in order to be
allowed to use this command. If the cron.allow file does not exist but
the cron.deny file does exist, then you must not be listed in the
cron.deny file in order to use this command. If neither of these files
exists, only the super user will be allowed to use this command.
热心网友
时间:2022-02-26 15:49
crontab -e #编辑计划任务
* * * * * /root/1.sh # *从左到右分别代表分时天月周
20 13 * * * /root/1.sh # 每天13点20执行 1.sh
热心网友
时间:2022-02-26 17:57
crontab -e
0 0 1 * * /root/example.sh
/etc/init.d/crond restart
Linux的shell文件如何来执行命令添加计划任务?
crontab -r ——>删除当前用户的crontab任务;crontab书写格式 PS:星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作;逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”;中杠(-):可以用整数之间的中杠表...
Linux shell脚本如何自动运行程序并输入命令
linux下可以使用crontab计划任务实现自动运行程序 追问 查看了下资料好像不行吧,能否给个小例子。呵呵 追答 所谓计划任务就是按周期执行 比如 0 8 * * * /youshell.sh > /dev/null 表示每天8点执行一次 如果你仅仅需要执行一次,那么可以使用at 追问 不行哦,我还需要输入。谢谢你 免费提供最新Lin...
写一个shell脚本,向系统中添加一个服务。在线等,急!
1、开机自启 两种方法:1、加入到rc.local系统配置文件 2、将脚本做成服务形式(拷贝到/etc/init.d/)2、可以通过init.d下的脚本控制其启动 说明脚本要支持start|stop|restart等参数 使用case匹配进行输出,例子如下:!/bin/bash mode=$1 case "$mode" in 'start')...;;'stop')...;;'resta...
如何设置计划任务
在任务计划程序主界面中,选择对应的任务,右键选择相应的选项。在Linux操作系统中,你可以利用Crontab命令或Cron服务来设置计划任务。以下是一个示例:1.编写一个shell脚本(例如test.sh),并设置好脚本的路径。2.打开终端,打开Crontab编辑界面。在终端中输入“crontab-e”...
Linux 中怎么设置计划任务:cron 与 anacron
1.3: job-id - 这是写在日志文件中任务的独特名字。 1.4: command- 这是要执行的命令或 shell 脚本。2 、如何看示列文件 要浏览示例文件,输入: $ ls -l /var/spool/anacron/ total 12 -rw--- 1 root root 9 Jun 1 10:25 cron.daily -rw--- 1 root ...
反弹shell与计划任务
1. 使用`nc`工具实现反弹shell。将Ubuntu作为攻击机,Kali作为靶机。步骤如下:(1)在Kali上监听端口(例如:23333)。(2)在Ubuntu上执行命令将shell注入到目标系统。2. 计划任务,即使用`crontab`命令创建定期任务。`crontab`命令格式为`* * * * * xxx`,其中`*`代表时间维度划分,`xxx`代表要...
linux编写一个shell脚本,救命
1.先写个脚本,叫help.sh !/bin/sh dir=/tmp/history day=20 [ -d $dir] || mkdir -p $dir find $dir -type f -mtime +$day -delete time=`date +%F\ %H:%M:%S`df -k > /tmp/history/df-k$time 2.设置定时任务,用crontab命令来实现。crontab -e 59 23 * * * /script...
举例说明如何在Linux中实现计划任务的功能。
Linux下的任务调度分为两类:系统任务调度和用户任务调度。系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。/etc/crontab文件包括下面几行:SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=...
linux 写一个计划任务的脚本,在每个月1号的凌晨3点定时备份/boot、/e...
你编辑一个shell脚本:cd ~/tmp vim b.sh !/bin/bash backups=`date +%H_%M-%m%d` # (1号键旁边到符号` )cd /backup-dir tar zcf $backups.tar.gz /home /root /boot /etc 让crontab来调用 crontab -e 3 1 * * sh ~/tmp/b.sh ...
shell脚本可以直接执行,计划任务不执行 为什么?
linux计划任务是使用crontab命令,不执行一般原因如下:cronjob的格式不正确,解决方式为按正确格式重写cron命令 执行文件没有x执行权限,解决方式为使用chmod添加执行权限 执行文件的路径不正常,解决方式为使用完整的路径,不使用相对路径 磁盘空间不足,解决方式为清理磁盘空间 解决建议:把执行程序的log重...