自动备份配置文件脚本(screen后台执行)

本文介绍了一种在Linux环境下利用screen进行自动化备份/etc目录的方法,通过编写bash脚本实现无需人工干预的定时备份,有效防止配置文件丢失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文首发于我的个人网站: https://hewanyue.com/
本文作者: Hechao
本文链接: [https://hewanyue.com/blog/b580c8f5.html](https://hewanyue.com/blog/b580c8f5.html

  Linux中配置文件很多,各种需要设置的各种参数很多,有些自定义选项为了方便使用,都会自己修改使用,不过有时候配置文件或者用户参数属性不小心误删掉或者日后想找回当时的参数设置,没有备份肯定是不行的,所以闲暇之余自己写了一个专门备份/etc目录的脚本,以备不时之需。
  下面贴代码~

#!/bin/bash

echo "Backup is start!"                        #显示备份开始

ScreenName=$"backup"                           #设置变量定义窗口名
screen -dmS $ScreenName                        #创建一个出于断开模式下的窗口并指定名字
screen -S $ScreenName -p 0 -X stuff $"\cp -ap /etc /date/back`date +%F`"
                                               #向窗口传递命令备份/etc目录且命名为当前日期
screen -S $ScreenName -p 0 -X stuff $'\n'      #执行命令,相当于回车

echo "backing up,please wait~"                #等待备份完成,并提示等待

screen -S $ScreenName -p 0 -X stuff $'exit'    #备份完后传递退出窗口命令
screen -S $ScreenName -p 0 -X stuff $'\n'      #执行命令

echo "Backup is finshed!"                      #提示备份完成,脚本结束。

  之前写的脚本总是在创建完screen就停住了,之后的命令没法自动执行,必须Ctrl+A+D暂离screen之后才可以继续执行,不过这样就没法实现自动的初衷了。后来转换思路打算用screen -X的选项从原shell向screen中传递命令却总是失败,后来是参考了大神关于screen传递命令的方法(原文链接),才创建成功的。
在这里插入图片描述
  此脚本原理大体如下:
  脚本中执行screen命令,相当于打开了新的shell,而脚本上的命令都在老shell上,要让备份cp命令在screen上的新shell上跑起来,必须采用向新screen传递命令的方法,才可以实现后台备份,无需担心断网断电的问题。
screen -S $ScreenName -p 0 -X stuff $'cp -ap /etc /date/back`date +%F`'
  这条命令单独执行,只会传递在screen中输出cp命令却并不执行,需要
screen -S $ScreenName -p 0 -X stuff $'\n'
  命令执行时cp命令才会生效。exit命令亦是如此。
  各位大佬如果还有别的更好的方法可以实现功能,希望可以多多交流,不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MicePro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值