首页 > 其他分享 >备份脚本backup_log.sh、计划任务

备份脚本backup_log.sh、计划任务

时间:2024-07-09 09:58:12浏览次数:14  
标签:脚本 shell log 30 sh backup

脚本+计划任务  =  解放了劳动力,提升效率 --》实现了自动化操作

编写一个脚本backup_log.sh实现备份/var/log目录下的所有日志文件到/backup目录下,要求文件名是包含当天日期,精确到秒,文件名例如:20240308151520-log.tar.gz。同时要求删除/backup目录下七天前的备份文件,只保留最近7天的,备份文件成功后,记录备份的时间和路径到/var/log/backup_log.txt, 同时在屏幕上输出备份成功。
 

#!/bin/bash

#/backup目录是存在的
mkdir  -p  /backup
#[ -d /backup ] || mkdir /backup
#备份的时间
backup_time=$(date +%Y%m%d%H%M%S)

#备份
tar  czf /backup/${backup_time}-log.tar.gz  /var/log   &>/dev/null
if (( $? == 0  ));then
	echo "$backup_time   $(hostname)  backup /backup/${backup_time}-log.tar.gz" |tee -a /var/log/backup_log.txt
fi

#删除7天前的文件
find  /backup  -mtime +7  -type f  -name "*-log.tar.gz"  -exec  rm  -rf  {} \;

计划任务:  定时去执行脚本

crond 每间隔1分钟就去检查每个用户的计划任务----》最短时间间隔是1分钟
 

cat /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- 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
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
  分 小时 日 月 周
crontab -e  编辑/创建一个计划任务

crontab -l  查看当前用户有哪些计划任务

补充知识:

, 表示单个的
- 表示联系的
/ 表示间隔
* 代表任意时间
 

 crontab简单示例

0. 2024年7月9号3点30分钟执行脚本/shell/backup_log.sh

30 3 9 7 * /shell/backup_log.sh && crontab -l | grep -v "30 3 9 7 *" | crontab -

1.每隔30分钟执行脚本/shell/backup_log.sh

*/30 * * * * /shell/backup_log.sh

2.每间隔5个小时执行脚本/shell/backup_log.sh

0 */5 * * * /shell/backup_log.sh

3.每个月的3号,7号,25-30号的3点30分执行脚本/shell/backup_log.sh

0 */5 * * * /shell/backup_log.sh

4.星期1到星期6的2点30分钟执行执行脚本/shell/backup_log.sh

30 2 * * 1-6 /shell/backup_log.sh

5.每周5的3:30分钟执行脚本/shell/backup_log.sh

30 3 * * 5 /shell/backup_log.sh

6.每间隔5天的8点30分钟执行脚本/shell/backup_log.sh

#!/bin/bash  
# 计算5天后的日期和时间  
next_run=$(date -d "+5 days" "+%Y-%m-%d %H:%M")  
# 使用at安排任务  
echo "/shell/backup_log.sh" | at "$next_run"

标签:脚本,shell,log,30,sh,backup
From: https://blog.csdn.net/pyq0v0/article/details/140279793

相关文章

  • 我跟你说@RefreshScope跟Spring事件监听一起用有坑!
    本文记录一下我在Spring自带的事件监听类添加@RefreshScope注解时遇到的坑,原本这两个东西单独使用是各自安好,但当大家将它们组合在一起时,会发现我们的事件监听代码被重复执行。希望大家引以为鉴,避免重复踩坑。耐心看完,你一定会有所收获!前置描述最近有一个用户拉新的需求,需要......
  • Grafana9的dashboard权限问题
    grafana升级到9之后会有一个问题,在给用户分配组织Organizations权限的时候,这个用户是没有查看dashboard的权限的。只有当分配了edit和admin才能看到dashboard,但是这样权限就太大了。在9版本之后,把dashboard的权限细化了,不但需要在用户侧分配权限,还需要到每个dashboard去分配......
  • linux centos8升级openssh与openssl
    LinuxOpenSSH升级升级openssh之前需要先升级openssl 1、升级准备##1.1、查看系统版本和ssh版本linux系统版本cat/etc/redhat-release#或者uname-aopenssh查看一下原安装版本ssh-Vopenssl查看一下原安装版本opensslversion 1.2、下载软件包Opens......
  • vscode 远程连接 Ubuntu (SSH)
    安装对应的拓展包显示所有的命令(Ctrl+Shift+p)获取虚拟机的ipsudoaptinstallnet-toolsifconfig进行连接如果连接的时候报错(管道不存在)在Ubuntu中打开ssh服务即可如果连接了很久没有连上(Permissiondenied(publickey).)sudoservicesshrestart......
  • 【免杀】图片隐写shellcode
    写入shellcode(C#):usingSystem;usingSystem.IO;classProgram{privatestaticboolIsBmpFile(stringfilePath){try{using(FileStreamstream=newFileStream(filePath,FileMode.Open,FileAccess.Read))u......
  • 全网最全EdgeMesh Q&A手册
    https://zhuanlan.zhihu.com/p/585749690   全网最全EdgeMeshQ&A手册转载请注明出处本人信息如下,有任何问题请联系我:github链接:Poorunga-Overview邮箱:[email protected]前言重要的事情1说三遍:定位问题前先看edgemesh-agent日志!定位问题前先看edgemesh-agent日志!定位......
  • python logger 使用记录
    1.简单使用importlogging#基本设置#如果没有设置,则可以使用该设置用于显示logging.basicConfig(level='DEBUG',datefmt='%Y-%m-%d%H:%M:%S',format='%(asctime)s[%(name)s]%(levelname)s%(message)s')logger=logging.getLogger(......
  • mac升级系统后ssh登录服务器问题
    报错信息:Unabletonegotiatewith111.111.113.86port123:nomatchinghostkeytypefound.Theiroffer:ssh-rsa分析:原因是MacosVentura13.0升级了ssh到9.0,ssl到3.3.6,而服务器上的sshd还是老版本;服务器上的老版本ssh和ssl无法和mac上的新版本ssh和ssl交互,新版本ss......
  • 【0295】Posgres内核 dynahash table 之 hash_search 实现原理(2)
    相关文章:【0294】Postgres内核dynahash之hash_search实现原理(1)0.前言在【0294】Postgres内核dynahash之hash_search实现原理(1)一文中,从Postgres内核源码角度详细讲解了dynamichashtable中hashsearch的实现原理。具体内容:如何确定segment位置如何确定bu......
  • Shell编程之条件判断语句
    Shell编程之条件判断语句一、条件判断Shell环境根据命令执行后的返回状态值(echo$?)来判断是否执行成功,当返回值为0表示成功或正确,返回值为非0值表示失败或异常。(补充:Linux判断依据在别的编程语言中是反过来的,如java假为0,真为1)1、test命令有两种方式test条件表达式[条件表......