过程式编程语言: 顺序执行 选择执行 循环执行 注:条件中的变量,可以在执行语句中使用,不用在加上"$"。if语句根据命令的退出状态来执行命令
单分支
if 判断条件;then
条件为真的分支代码
fi
双分支
if 判断条件; then
条件为真的分支代码
else
转载
2024-08-08 12:56:08
81阅读
# MySQL脚本日期相减
在MySQL数据库中,我们经常会涉及到对日期进行加减的操作,以便实现一些复杂的需求。本文将介绍如何在MySQL脚本中进行日期相减的操作,并给出相应的代码示例。
## 日期相减的函数
MySQL提供了一些内置函数,可以方便地对日期进行运算。其中最常用的函数是`DATEDIFF()`函数,它用于计算两个日期之间的天数差。
## 代码示例
下面是一个简单的示例,展示
原创
2024-03-24 06:31:36
64阅读
1.初始化日志文件。对文件的大小进行判断和压缩 2.写日志
转载
2019-05-23 11:31:00
336阅读
2评论
我的博客已迁移到xdoujiang.com请去那边和我交流
1、日志结构
/opt/online/{123com,abccom}/log/online[1-9]/[a-z]
2、变量说明
#是否开启压缩功能(0:关闭,1:开启;若关闭压缩功能,则compressdayn无效)
needcompress=1
删除14天以前的日志
deldayn=14
前1天
lastdayn=1
服务类型
all
原创
精选
2015-05-19 17:29:25
2735阅读
使用nutch开源的搜索引擎抓取网页信息,通过计划任务crontab执行shell脚本,并将启动信息记录进日志文件,但是每次都会出现乱码,如图所示经过反复测试,排除了java程序问题,文件权限问题,系统字符集的环境变量问题(en_US.UTF-8),发现手动执行shell脚本不会出现乱码,写在计划任务里自动执行就会出现乱码,最后确定是计划任务crontab执行脚本问题。问题原因:因为Unix/Li
原创
2013-05-29 12:49:40
6472阅读
1评论
需求实现进度回顾需求分析,有两个需求还未实现:显示当前的调用关系,这个功能在1.0中可以实现,但2.0中有更简便的方法重要信息换颜色展示,之前讨论过可以先搁置技术积累这部分名字或许该改成“点亮技能树”日志模块优缺点优点之前已在实现模块时做总结,上个图直接聊缺点缺点未能记录脚本执行全过程写脚本时潜意识预期:绝大多数逻辑都能顺利执行无需在意结果,只有主观认为需要记日志时才调用几个函数。例如:Info
原创
精选
2024-03-03 22:25:53
140阅读
日志模块1.0解决了要做什么和怎么做两个问题,2.0要解决的问题是怎么做的更好。针对1.0的不足,在改进思路的同时,更多使用Shell特性来实现需求。需求分析区分日志来源先把日志来源分为主被动和主动两种被动来源是指脚本执行全过程调试脚本一般使用bash -x script.sh,显示脚本执行全过程,输出是混合结果。例如:#!/bin/bash
ls -l /not_exist
ls -l /v
原创
2024-03-04 12:41:45
27阅读
曾经我的Shell脚本只有几十至上百行,几乎不需要写日志。后来脚本越来越复杂,“debug脚本报错” 和 “编写脚本后的调试” 占用了大量时间。站在SRE的角度,这些工作成为了“琐事”和“长尾问题”。于是写一个Shell脚本的日志模块,成为重要但不紧急的需求。日志模块1.0看起来有点简陋,因为它在十多年之前写成,回顾1.0是为总结方法和思路。需求分析把Shell脚本写日志的功能理解成echo "
原创
2024-03-03 18:39:32
51阅读
function log() {
echo >&2 -e "[$(date +"%Y-%m-%d %H:%M:%S")] ${1-}"
}
function die() {
local msg=$1
local code=${2-1} # Bash parameter expansion - default exit status 1
原创
2023-06-12 23:08:21
154阅读
获得当天的日期
date +%Y-%m-%d
输出: 2011-07-28
将当前日期赋值给DATE变量
DATE=$(date +%Y%m%d)有时候我们需要使用今天之前或者往后的日期,这时可以使用date的 -d参数
获取明天的日期
date -d next-day +%Y%m%d
获取昨天的日期
date -d last-day +%Y%m%d
获取上个月的年和月
date -d
按照前文的需求和设计,实现日志模块1.0。先展示最终效果,在脚本中调用Info Cau Warn记录日志:# 日志文件保存到"./log.log"
strLogPath="."
strLogName="log.log"
Info 正常信息
sleep 1
Cau 警告信息
sleep 1
Warn 错误信息,脚本退出
sleep 1
Info 不会执行到这里结果输出包含时间、PID、U
原创
精选
2024-03-03 21:26:44
147阅读
展示效果在此先展示效果,再讲如何实现。Log4Bash.sh 有以下几个参数可供配置:LogDIR 和 LogFile 指定日志位置,默认值为 /tmp 和 当前进程pid.logShowLogPath 默认值0,表示脚本执行结束时不显示日志位置。没配置 LogDIR 和 LogFile 时用户不知道日志位置,ShowLogPath 会自动改为1并显示日志位置LogTimer 默认值0,设置为1时
原创
精选
2024-03-04 12:49:08
163阅读
具体实现方法改造Warn函数日志模块1.0的Warn函数实现了2个功能:记录日志和退出脚本。2.0中用Shell特性分别实现。1.0手工判断脚本执行是否出错,2.0使用bash -e开启错误检测模式。任何一行命令的返回值$?不为0,都会认为出错并退出。trap命令可以捕捉到上述错误,可以像注册回调函数一样,让trap调用函数记录日志#!/bin/bash
LogsDIR=logs
LogFile=
原创
精选
2024-03-04 13:22:16
128阅读
日志文件名规划如果日志文件名始终是log.log会有两个弊端。首先刚才的例子已经能看出,脚本多次执行日志都混在一起,查找之前某天某次的日志会变得很困难。其次日志文件体积会持续增长,清理某个时间点之前的日志会变得很困难。所以写入日志时需要加入日期时间等标记。加入日期时间假设大家已经精通date命令,日志文件名加日期时间需要在日志文件名中追加,如strLogPath="."
strLogName="l
原创
精选
2024-03-03 21:36:13
172阅读
具体实现方法记录脚本执行全过程前面讲过使用bash -x开启调试功能显示脚本执行全过程,与命令报错一起显示在标准错误。标准错误默认是终端,与标准输出混在一起,需要把标准错误重定向给日志文件。#!/bin/bash
LogsDIR=logs
LogFile=output.log
mkdir -p ${LogsDIR}
# 重定向标准错误
exec 2>>${LogsDIR}/${Log
原创
精选
2024-03-04 13:05:33
152阅读
# Java 文本日期抽取
在日常编程中,我们经常需要从文本中提取日期信息。无论是处理日志文件、解析邮件内容,还是分析新闻数据,都会遇到需要从文本中抽取日期的情况。本文将介绍如何使用 Java 语言来实现文本日期抽取,并通过代码示例来演示。
## 正则表达式
在抽取日期时,我们通常会使用正则表达式来匹配文本中的日期格式。Java 中使用 `java.util.regex` 包提供的类来操作正
原创
2023-07-31 03:20:35
249阅读
# Python 文本日期循环
日期是我们日常生活中经常遇到的一个概念,而在Python中,我们可以使用datetime模块来处理日期和时间。在本文中,我们将探讨如何使用Python循环处理文本日期,并提供相应的代码示例。
## 1. datetime模块简介
Python的datetime模块提供了处理日期和时间的功能。它包含了多个类,如date、time、datetime和timedel
原创
2023-10-05 17:24:06
151阅读
# Java 取文本日期实现方法
## 简介
在 Java 开发中,经常会遇到需要从文本中获取日期的情况。本文将介绍如何实现在 Java 中取得文本日期的方法。我们将使用一些基本的字符串处理方法和 Java 的日期处理库。
## 实现方法
下面是实现这个功能的步骤:
```mermaid
erDiagram
开始 --> 输入文本
输入文本 -- 去除空格和特殊字符 -->
原创
2024-01-02 09:02:31
58阅读
配置 bash Shell忽略命令大小写 |按“上“键显示该命令的历史 当按“上键”时,能够显示前一个历史命令。但是,这还 不太方便,下面的这个配置,可以让bash输入的命令头按“上“键显示该命令的历史,比如:输入 vim ,然后按”上“键,此时,可以显...
转载
2016-02-04 23:19:00
626阅读
2评论
1、Shell脚本怎么定义?答:shell为命令解析器,第一行固定的写法一般是#!/bin/sh 或 #!/bin/bash,其中脚本一般存放在/etc/rc中。 2、echo怎么输出一句话?答:echo ${a} 或者echo $a 3、默认变量有哪些?答:$# 传入脚本的命令行参数个数$* 所有命令行的参数值,在各个数值之间留