需求如下:

系统logrotate工具,可以完成日志切割、归档。写一个shell脚本实现类似功能。

举例:假如服务的输出日志是1.log,要求每天归档一个,1.log第二天就变成1.log.1,

第三天1.log.2,第四天l.log.3,一直到1.log.5

参考解答如下

  • 方法1
#!/bin/bash
# rem_file()
{
[ -f $1 ] && rm $1
} for i in $(seq 5 -1 2)
do
i2=$(($i-1))
rem_file /data/1.log.$i
if [ -f /data/1.log.$i2 ];then
mv /data/1.log.$i2 /data/1.log.$i
fi
done rem_file /data/1.log.1
mv /data/1.log /data/1.log.1 # service restart

shell练习题4的更多相关文章

  1. shell 脚本之 shell 练习题汇总

    整理了一些 shell 相关的练习题,记录到这里. 1. 请按照这样的日期格式 xxxx-xx-xx 每日生成一个文件,例如:今天生成的文件为 2013-09-23.log, 并且把磁盘的使用情况写到 ...

  2. shell练习题5

    需求如下: 用shell实现,把一个文件文档中只有一个数字的行给打印出来.(以/password文件为例,自行修改) 参考解答如下 方法1 #!/bin/bash file_name=passwd n ...

  3. shell练习题2

    需求如下: 写一个shell脚本,检查指定的shell脚本是否有语法错误,若有错误,首先显示错误信息,然后提示用户输入q或Q退出脚本, 输入其他内容则直接用vim打开该shell脚本. 参考解答如下 ...

  4. shell练习题1

    需求如下: 写一个shell脚本,把10.0.1.0/24网段在线的ip列出来. 参考解答如下 方法1 #!/bin/bash ip="10.0.1." for i in $(se ...

  5. shell练习题

    一.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. 原文代码为:         Shell   1 2 3 4 5 6 7 8 9 10 #!/bin/bash ...

  6. shell 练习题

    1.编写脚本/bin/per.sh,判断当前用户对指定参数文件,是否不可读并且不可写 read -p "Please Input A File: " file if [ ! -e ...

  7. shell 练习题1

    1.实现每次打开一个xx.sh时,自动添加注释信息 [root@chengyinwu ~]# cat .vimrc set ignorecase set nu set autoindent autoc ...

  8. shell练习题7

    需求如下: 输入一串随机数字,然后按千分位输出. 例如:输入随机数字为"123456789",输出为123,456,789 参考解答如下 -方法1 [root@lanquark s ...

  9. shell练习题6

    需求如下: 有日志access.log,部分内容如下: 127.0.0.1 - - [03/Jul/2018:00:00:01 +0800] "GET / HTTP/1.1" 20 ...

随机推荐

  1. Error: listen EADDRINUSE :::3000

    解释:端口已被占用 解决方法: 修改本服务要用的端口.如 3001 停止 3000 端口. lsof -i:3000 # 查看 3000 端口被占用情况 kill -9 xxx PID 为上调命令查看 ...

  2. vue全局组件-父子组件传值

    全局组件注册方式:Vue.component(组件名,{方法}) demo: 子组件:upload.vue <template> <div > <div class=&q ...

  3. CPU高的排查

    之前有朋友反馈说发的内容希望有个梯度,逐步加深,前面发了几篇关于jvm源码分析的文章,可能我觉得我已经把内容写得浅显易懂了,但是对于某些没怎么接触的同学来说还是比较难理解,这个我以后慢慢改进吧,今天发 ...

  4. y

    switch(update_state) { : switch(num){ : window.progressn=num $('#h_progress_bar .ui-progress').anima ...

  5. docker 部署nginx

    # 下载镜像 docker pull nginx # 挂载  文件 和文件夹必须存在 docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $P ...

  6. 现代 PHP 新特性 —— 闭包

    一.概述 闭包是指在创建时封装周围状态的函数,即使闭包所在的环境的不存在了,闭包中封装的状态依然存在.闭包对象实现了__invoke()魔术方法,只要变量名后有(),PHP就会查找并调用__invok ...

  7. __FILE__、__DIR__区别

    __FILE__=D:\Soft\xampp\htdocs\test\test.php __DIR__=D:\Soft\xampp\htdocs\test getcwd()=D:\Soft\xampp ...

  8. 【记录】【3】设置bing为chrome的默认搜索引擎

    方法:设置→搜索→管理搜索引擎→其他搜索引擎→设置bing搜索的网址为  http://cn.bing.com/search?q=%s 注:search?q=%s   是必须的,否则无法将其设置为默认 ...

  9. ArcGIS制作tpk离线压缩包

    ArcGIS制作tpk离线压缩包 tpk是什么的缩写,对应的中文名称是? 什么叫tpk文件? 缓存切片? 切片类型:紧凑型与稀疏型.   一.目前自己使用的在ArcMap中制作tpk压缩包 1.首先打 ...

  10. Vue 知识整理—02-起步

    一:Vue 语法格式: vue vm = new Vue({ //选项 }) 二:Vue 实例: <div id="app"> <p>{{message}} ...