首页 > 系统相关 >linux之定时任务

linux之定时任务

时间:2024-11-20 13:41:05浏览次数:1  
标签:bin echo 任务 linux 定时 root hello

定时任务

  • 定时执行的命令或脚本任务

1.系统定时任务配置

# 系统定时任务需要root权限
# 配置文件: /etc/crontab
# 语法结构: * * * * * root cmd 或 cmd.sh
# * 的解释
*  分	0 - 59   01或者写1表示1分钟  0表示整点
*  时    0 - 23   00或者写0 表示凌晨12点
*  日    1 - 31
*  月    1 - 12	 1-12月份
*  周	0 - 6    0或者7表示星期天 

#特殊符号表示时间:
* 表示每的意思 如果是五颗星表示每分钟都要执行一次定时任务
/ 表示间隔的意思 */5 或 */05  表示间隔5分钟执行一次
- 表示区间  7-11 表示上午7点到上午的11点
, 表示间隔  7-11,13-15 上午7点到11点和下午的1点到3点执行


#每5分钟执行一个echo hello world >>hello.txt
*/5 * * * * root echo hello world >>hello.txt

#每小时的第5分钟执行一次定时任务
05 * * * * root echo hello world >>hello.txt

#每分钟执行一次定时任务
* * * * * root echo hello world >>hello.txt

#上午的7-11点执行任务
* 7-11 * * * root echo hello world >>hello.txt #7-11点每分钟都执行
00 7-11 * * * root echo hello world >>hello.txt #7-11点整点执行

#凌晨12点执行一次命令
00 00 * * * root echo hello world >>hello.txt #每天晚上十二点执行一次

#定时任务不识别% 需要加\ 或者将命令写入到脚本中

#将脚本写入到定时任务
* * * * * root sh /server/scripts/cmd.sh

#定时任务的日志文件
centos 、kylin: /var/log/cron
ubuntu 		  : /var/log/syslog

2.用户定时任务配置

# 配置文件:/var/spool/cron/root 默认不存在,需要手动vim

# 配置用户定时任务有两种方法:
#用命令
crontab -e 直接编辑的是/var/spool/cron/root
#编辑配置文件
vim /var/spool/cron/root

#用户的定时任务默认识别的PATH变量只有/usr/bin和/bin路径 需要重新配置PATH变量
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin

#crontab -l 查看定时任务列表
[root@localhost ~]# crontab -l
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
* * * * * echo hello world >hello.txt

#定时任务定向到日志文件 或 空
* * * * * echo hello world &>>cron.log #错误的正常的都输入
* * * * * echo hello world &>/dev/null #丢给黑洞

#用户定时任务 详细报错信息查看 /var/spool/mail

#使用centos,如果关闭了邮件服务,每执行一次定时任务,会自动生成一个小文件,小文件会占用inode号码 

#/var/spool/postfix/maildrop

3.定时任务注意

1.避免一些不必要的输出 类似tar -zcf 去掉v 类似打包进入相对路径
2.多条命令使用脚本
3.直接写到定时任务配置文件中不识别% 需要加\ 或者写入脚本。
4.用户定时任务识别的路径只有/usr/bin和/bin目录 需要重新定义PATH变量

4.定时任务

1.以每天为时间+ip地址+主机名称在/opt/创建目录
2.打包/etc/passwd /etc/hosts文件名称为etc.tar.gz 放到已经创建好的目录中
3.查找/opt/目录下所有7天前被修改过的文件删除  (模拟环境使用循环生成需要的文件)

#!/bin/bash
for i in {1..9}
do 
	#修改系统时间
	date -s 2024100${i} &>/dev/null
	#创建目录
	dir_date=`date +%F`
	#获取主机IP
	ip=`hostname -I |awk '{print $1}'`
	#获取主机名称
	hostname=`hostname`
	#在/opt/下创建目录
	dir="/opt/${dir_date}-${ip}-${hostname}"
	mkdir -p "$dir"
	#echo $dir
	#创建文件
	touch ${dir}/{1..10}.txt
	#打包 passwd hosts
	tar zcfP ${dir}/etc.tar.gz /etc/passwd /etc/hosts
done
ntpdate ntp2.aliyun.com &>/dev/null
#查找7天以上的文件和目录并删除
find /opt/* -type f -o -type d -mtime +7 |xargs -i rm -rf {}

标签:bin,echo,任务,linux,定时,root,hello
From: https://www.cnblogs.com/sharecorner/p/18556707

相关文章

  • 蓝易云 - Linux系统修改时区日期教程
    在Linux系统中,可以通过以下步骤修改时区和日期:查看当前时区:运行以下命令以查看当前时区:timedatectl​列出所有可用的时区:运行以下命令以列出所有可用的时区:timedatectllist-timezones​修改时区:运行以下命令以修改时区,将 Your_Timezone替换为您希望设置的时区:t......
  • 【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
    文章目录:【Linux篇】Docker的容器之海与镜像之岛:于Linux系统内探索容器化的奇妙航行前言安装docker-centos7【Linux篇】Docker的容器之海与镜像之岛:于Linux系统内探索容器化的奇妙航行......
  • docker搭建hadoop集群linuxcentos(为分布式、完全分布式)
    docker搭建hadoop集群linuxcentos(为分布式、完全分布式) 第1章写在前面必读1.1Hadoop生态简单说明说明:hadoop只是一个存储数据的平台,mapreduce是一个计算框架,需要编程人员去编写处理数据的程序。然后hadoop是一个生态,就是说在其上还运行着hbase数据库,sqoop,shark等等工具,这样才......
  • XXL-JOB快速入门(什么是XXL-JOB、部署XXL-JOB、在SpringBoot项目中接入XXL-JOB、XXL-JO
    文章目录1.分布式任务调度2.@Scheduled注解的局限3.什么是XXL-JOB4.通过源码部署调度中心4.1下载源码4.2源码说明4.3运行数据库脚本4.4补充:xxl_job数据库中八张表的作用4.5调度中心配置4.5.1数据库相关配置4.5.2日志相关配置4.6启动调度中心4.7访问调度中......
  • 鸿蒙hvigor构建任务依赖与生命周期简介
    Hivgor脚本文件在构建的生命周期中Hvigor使用两个脚本文件来完成插件、任务以及生命周期hook的注册:hvigorconfig.ts:此文件在整个项目中只有根目录下存在一份,不是构建必须的文件并且默认不存在,如有需要可自行创建,此文件被解析执行的时间较早,可用于在Hvigor生命周期刚开始时操作......
  • 【Linux合集】二进制安装mysql
    1、二进制安装数据库之--上传或者下载包#本地有二进制包可以rz上传[root@db01~]#rzmysql-5.6.46-linux-glibc2.12-x86_64.tar.gz#没有的可以使用下面的进行网络安装[root@db01~]#wgethttps://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.46-linux-glibc2.12-......
  • 【Linux合集之mysql】源码安装mysql
    1、本地留有mysql-5.6.46.tar.gz的包,将包上传至虚拟机[root@db01~]#rzmysql-5.6.46.tar.gz2、安装后面所需要的依赖cmake过程需要的依赖[root@db01~]#yuminstall-ycmakeopensslopenssl-develncurses-develgccgcc-c++初始化过程依赖[root@db01~]#yuminstall......
  • Linux里反引号`和单引号‘注意区分,二者很像;以及双中括号[[]]
    $While[[`seq110|shuf|head-n1`!="1"]];doecho"retry";done问题结果发现:`seq110|shuf|head-n1`是反引号`,不是单引号’1.认成单引号和双引号执行情况:里面是字符不执行test_watch.sh执行bash脚本debug$bash-xtest_watch.sh2.正确表述......
  • 【Linux合集】当我们将运行级别设置为重启时……
    总以为设置系统重启就是重启,哈,我一开始就是这样认为的,但是设置之后就发现自己想错了,设置之后并不会发生任何变化,但问题会出现在你想把虚拟机关闭之后,或者当你重启的时候你就会发现一个很悲催的事情——虚拟机进入了无限的循环重启的地步,怎么办。满头雾水,却又无计可施。别急,教你怎......
  • 工作节奏总被打乱?如何用数据让任务变得清晰可控?
    在现代工作环境中,每天被无数的任务、会议、突发事件环绕,我们经常会有一种感觉——越努力,越混乱。任务完成的比例和效率不仅让个人焦虑,也直接影响团队和项目的成败。那么问题来了:如何看清任务进展、明确团队节奏、优化时间分配?解决这一切的关键,其实在于科学的数据追踪与分析。任务......