shell实战之日志备份
util.sh
#!/bin/bash - # Read config
# kay
# Version: 1.0
# // # configuration file path
config=${log_bak}/"cfg" # config parameters
prefix=`grep -v "^#" ${config}`
begin=`echo "${prefix}" | grep 'begin' | awk -F '=' '{ print $2 } '`
logpath=`echo "${prefix}" | grep 'logpath' | awk -F '=' '{ print $2 }' | awk -F ';' '{ for(i=1;i<=NF;i++) print $i }'`
shpath=`echo "${prefix}" | grep 'shpath' | awk -F '=' '{ print $2 }'`
bakpath=`echo "${prefix}" | grep 'bakpath' | awk -F '=' '{ print $2 }'`
cfg
# This is generated to be a configuration file.
# kay
# // # This is a parameter for crontab and objective file.
begin= # This are some log path
# logpath=/root/shell/log/;/root/shell/log/;/root/shell/log/
logpath=/home/pospadm/trc # bak path
bakpath=/home/kycap/bak # sh path
shpath=/home/pospadm/log-bak/start.sh
crontab.sh
#!/bin/bash - # Used to do a crontab task
# kay
# Version: 1.0
# // # @Name: docrontab
# @Parameter: specific crontab task
docrontab()
{
cronfile="/tmp/crontab.${USER}"
crontab -l > ${cronfile}
query=`echo "$1" | sed 's/*/\\\*/g'`
grep -q "${query}" ${cronfile} && echo "" ||
{
echo "$1" >> ${cronfile}
crontab ${cronfile}
}
rm -f ${cronfile}
}
readme
.设置环境变量
log_bak=脚本所在目录
.启动脚本
./start.sh
.停止脚本
./stop.sh
start.sh
#!/bin/bash - # This file is used to handle log bak
# kay
# Version: 1.0
# // . ${HOME}/.bash_profile
. ${log_bak}/util.sh
. ${log_bak}/crontab.sh # add crontab
task="0 0 * * * "${shpath}
docrontab "${task}" #echo "${bakpath}" >> ret.log
cd ${bakpath}
current=`date +"%Y%m%d"`
mkdir ${current} >/dev/null
cd ${current} # handle every specific file
for d in ${logpath}
do
# search for all directories before time begin
filelist=`find "${d}" -mtime +"${begin}" -type f`
for f in ${filelist[@]}
do
dir=`echo ${f} | awk -F '/' '{ print $(NF - 1) }'`
mkdir ${dir} >/dev/null
mv ${f} ${dir}
done
done # tar log
cd ${bakpath}
tar -zcf "${current}.tar.gz" ${current}
rm -rf ${current}
stop.sh
#!/bin/bash - # Used to stop script and crontab
# kay
# Version: 1.0
# // crontab -r
ps -ef | grep 'start' | awk -F ' ' '{ print $2 }' | xargs kill -
shell实战之日志备份的更多相关文章
- shell实战之日志脱敏
本次实战目标为日志脱敏,将日志目录内的所有文件进行处理,凡是涉及到卡号和密码的信息,一律以“*”号替代,要替代的内容都从对应的标签内获取,本脚本执行目录 drwxr-xr-x 5 root root ...
- shell实战之日志脱敏-2.0
cfg # This is generated to be a configuration file. # kay # // # This is a parameter for crontab and ...
- (转)企业Shell实战-MySQL分库分表备份脚本
本文来自http://www.xuliangwei.com/xubusi/252.html 免费视频讲解见 http://edu.51cto.com/course/course_id-5064.htm ...
- 日志备份的shell脚本
以前工作中写的日志备份的脚本,现记录一下日志备份脚本代码,以后工作中遇到遇到需要备份或者清理日志的时候可以拿来简单修改一下使用,减少工作量. 把备份脚本添加到Linux定时任务中,可以定时执行. 日志 ...
- SQL SERVER完整、差异和事务日志备份及还原(脚本和GUI实现) [原创]
一.完整备份.差异备份和事务日志备份的脚本 --完整备份数据库 BACKUP DATABASE Test_Bak TO DISK = 'E:\20150609_75\bak\Test_bak_full ...
- 日志备份和差异备份还原中的常见问题示例(转自&邹建)
--创建测试 CREATE DATABASE db GO --正常备份 BACKUP DATABASE db TO DISK='c:\1.bak' WITH FORMAT BACKUP LOG ...
- SQL Server数据恢复——日志备份
太坑了,我把数据给删了 “大坑啊,数据被我误删了.”从事数据库相关工作的过程中,我想应该很多人会有过和我一样的遭遇吧?尤其是在进行update或者delete操作的时候,忘记了where条件.这些毁灭 ...
- SQL SERVER BUG--Alwayson日志备份报错
数据库版本 SQL SERVER 2012 企业版,版本号:11.0.5582.0 问题场景: 数据库配置Alwayson环境,同机房2节点同步自动切换+跨机房异步,在异步机房中选取同一节点做完整备份 ...
- 用shell统计访问日志里每个ip访问次数【转】
今天,要统计一个系统的每个ip访问次数,于是我找到该系统访问日志,并写脚本实现. 访问日志情况: [root@qular ~]# cd /usr/local/nginx/logs/ [root@q ...
随机推荐
- 设置Editext的光标宽高与颜色
在Editext的布局属性上加上 android:textCursorDrawable="@drawable/cursor_shape" cursor_shape如下: <? ...
- 如何正确使用Espresso来测试你的Android程序
UI测试在Android平台上一直都是一个令人头痛的事情, 由于大家平时用的很少, 加之很多文档的缺失, 如果很多东西从头摸索,势必踩坑无数. 自Android24正式淘汰掉了Instrumentat ...
- Visual Studio 2019 RC入门
介绍 在本文中,让我们看看如何开始使用Visual Studio 2019 RC.Microsoft现已发布Visual Studio Release Candidate,现在可以下载了.最初,Mic ...
- 使用GRPC远程服务调用
远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议.该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程.如 ...
- redis 慢日志查询
Intro 可能有一些命令需要很长时间才能在redis服务器上处理,导致请求超时. 长时间运行的命令的很少例子有 mget有大量的键,键*或写得不好的lua脚本. 可以运行通过 SlowLog 命令查 ...
- Linux中逻辑卷的快照与还原
有关逻辑卷的其他操作,请看: Linux中对逻辑卷的建立 Linux中对逻辑卷进行扩容与缩小 Linux中对逻辑卷的移除 LVM还有快照的功能,类似windows的系统还原点.其特点: 1.快照卷的容 ...
- Linux Logwatch的学习总结
Logwatch功能介绍 Logwatch是一款Perl脚本编写的.开源的日志分析工具.它能对原始的日志文件进行解析并转换成结构化格式的文档,也能根据您的使用情况和需求来定制报告.Logwatch的特 ...
- 各种文件用JS转Base64之后的data类型
1.txt data:text/plain;base64, 2.doc data:application/msword;base64, 3.docx data:applicat ...
- c/c++ 多线程 std::call_once的应用
多线程 std::call_once的应用 std::call_once的应用:类成员的延迟初始化,并只初始化一次.和static的作用很像,都要求是线程安全的,c++11之前在多线程的环境下,sta ...
- LeetCode算法题-Binary Number with Alternating Bits(Java实现)
这是悦乐书的第292次更新,第310篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第160题(顺位题号是693).给定正整数,检查它是否具有交替位:即它的二进制数的任意两 ...