该脚本的作用是每天将应用程序目录下的analyzed目录下前一天的日志压缩并保存到archive目录下,目录结构类似archive/2011/02/22.tar.gz
添加cronjob
1 1 * * * /opt/etc/log/archive.sh /opt/var/log/prod >> /opt/etc/log/archive.log
archive.sh
#!/bin/bash
if [ $# -eq 0 ]
then
echo "Usage: `basename $0` /opt/var/log/prod"
exit $E_BADARGS
fi
APP_PATH=$1
APP_LIST_FILE=appList
ANALYZED_FOLDER=analyzed
ARCHIVE_FOLDER=archive
echo 'App path: '$APP_PATH
##Save apps to file
>$APP_LIST_FILE
ls -F $APP_PATH|grep /$ >> $APP_LIST_FILE ##将目标目录下的应用程序名字保存起来
##Archive log of apps by day
LAST_DAY_YEAR=$(date -d last-day +%Y)
LAST_DAY_MONTH=$(date -d last-day +%m)
LAST_DAY_DAY=$(date -d last-day +%d)
echo 'Last day: '$LAST_DAY_YEAR$LAST_DAY_MONTH$LAST_DAY_DAY
cat $APP_LIST_FILE | while read line; do
CURRENT_APP_PATH=$APP_PATH/$line
echo 'Current app path: '$CURRENT_APP_PATH
mkdir -p "$CURRENT_APP_PATH/$ARCHIVE_FOLDER"
##Move last day logs
mkdir -p "$CURRENT_APP_PATH/$ARCHIVE_FOLDER/$LAST_DAY_YEAR/$LAST_DAY_MONTH/$LAST_DAY_DAY"
LOG_FILES=$CURRENT_APP_PATH/$ANALYZED_FOLDER/$LAST_DAY_YEAR-$LAST_DAY_MONTH-$LAST_DAY_DAY"*"
mv $LOG_FILES $CURRENT_APP_PATH/$ARCHIVE_FOLDER/$LAST_DAY_YEAR/$LAST_DAY_MONTH/$LAST_DAY_DAY
##Compress logs
ZIPPED_FILE=$LAST_DAY_DAY".tar.gz"
cd $CURRENT_APP_PATH/$ARCHIVE_FOLDER/$LAST_DAY_YEAR/$LAST_DAY_MONTH
tar czf $ZIPPED_FILE $LAST_DAY_DAY
rm -rf $LAST_DAY_DAY
done
exit 0
分享到:
相关推荐
总的来说,这个shell cron定时脚本结合了数据处理、压缩、日志记录以及文件传输功能,实现了一套自动化的数据管理流程。通过合理利用这些工具,IT管理员可以有效提升工作效率,确保数据的安全备份和远程同步。
7. **监控和调试**:为了确保任务正常运行,可以查看日志文件(通常是`/var/log/cron`),或者在脚本中添加日志记录来追踪备份过程。 通过以上步骤,我们可以在Linux环境中设置一个定时执行的数据库备份任务,确保...
shell脚本可以每天执行一次,根据当前日期创建新的日志文件,并将旧日志重命名,以便后续分析。 5. Nginx 访问日志分析脚本:通过分析Nginx的access.log,可以获取到网站访问情况,例如最频繁的URL、访问来源、错误...
1. **Apache Ant**: Ant是基于XML的构建工具,它的主要任务包括编译、创建JAR文件、运行测试、打包和部署应用程序。XML配置文件(通常命名为build.xml)定义了构建过程中的各种任务和依赖关系。通过Ant,开发者可以...
- 可能会使用`tail`, `grep`, `awk`等命令行工具,结合`cron`定时任务来定期检查日志文件。 以上内容涵盖了shell脚本在Java应用部署中的核心知识点,包括JAR和WAR的使用,以及如何通过shell脚本来管理和维护Java...
`tar`命令用于打包压缩文件,`date`命令获取当前日期,`%Y%m%d`格式化日期。`crontab -e`编辑cron定时任务,例子中每周五3点进行日志备份。 4. **一键部署LNMP**:`yum`是包管理器,用于安装和管理软件包。这里使用...
通过学习这些内容,你可以编写出处理日常任务的自动化脚本,比如定时备份、日志分析、文件批量处理等。 此外,书中还涉及了一些高级主题,如正则表达式,这是在处理文本数据时非常强大的工具;错误处理和调试技巧,...
标签“android shell terminal apk”进一步明确了这个应用的主要功能,即它是一个Android平台的Shell终端应用,用户可以通过它来运行各种Linux命令,进行文件管理、系统控制、查看日志等操作。 在Android系统中,...
同时,使用`echo`将重要信息输出到日志文件,便于后期排查问题。 7. **自动化脚本**:所有的上述操作可以编写成一个完整的Shell脚本,通过定时任务或者触发事件自动执行,实现应用的自动化更新。这样不仅可以减少...
实际工作中,Shell脚本常用于自动化任务,如定时备份、日志分析、系统监控等。例如,一个简单的备份脚本可以利用`tar`打包文件,然后使用`rsync`进行远程传输。 通过阅读《超好-Shell学习笔记.pdf》和《shell脚本...
Shell脚本可以用于文件操作、系统管理、任务调度等多种场景,例如定时备份、日志处理等。编写Shell脚本的基本元素包括变量、条件语句、循环、函数等,这些元素使得脚本具有一定的程序逻辑。 以下是一个简单的Shell...
# 删除日志文件 find $bakdescdir/$orowner -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \; # 删除过期的备份文件 ``` ### FTP上传 使用`scp`命令实现备份文件的远程上传。示例脚本如下: ```sh scp ...
- **实现思路**:定时收集系统资源使用情况,如CPU、内存使用率,并记录到日志文件中。 - **脚本示例**: ```bash #!/bin/bash while true; do top -b -n1 | grep Cpu(s) | awk '{print $2 + $4}' >> /var/log...
7. **高级主题**:包括函数库(shell function library)、脚本模块化、脚本打包成可执行文件、以及与Perl、Python等其他语言的集成。 8. **案例分析**:书中包含许多实际工作场景中的脚本实例,如系统监控、日志...
例如,网络服务(如dhcpcd或sshd)、日志服务(syslogd)以及定时任务服务(cron)等。 最后,对根文件系统进行优化和压缩,以适应目标硬件的内存和存储限制。可以使用tar工具打包文件系统,然后使用gzip或xz进行...
在Linux系统中,定时任务和脚本编写是系统管理的重要组成部分,它们允许自动化执行日常维护任务,如数据备份、日志清理、性能监控等。本文档将详细介绍如何创建和配置Linux定时任务,以及编写和执行简单的shell脚本...
1. **日志压缩**:使用`tar`命令可以将日志文件打包成一个归档文件,然后用`gzip`或`bzip2`进行压缩以节省空间。例如,`tar -czvf logs_$(date +%Y%m%d).tar.gz /var/log/*` 将打包当前日期的所有日志文件,并使用...
使用`vi`编辑器创建一个名为`test.sh`的shell脚本,内容包括定义备份路径、日志文件路径、获取当前时间戳,并执行复制操作。例如: ```bash #!/bin/bash mypath='/tmp/logs' mylog='/opt/apollo/logs/access_log' ...
Shell脚本的基本结构包括变量定义、条件语句、循环结构、函数以及调用系统命令,例如`tar`用于打包压缩文件,`cp`或`mv`用于文件复制或移动。 2. **Linux定时任务调度**:Linux系统中,`cron`服务用于定期执行任务...
- 将备份文件打包成tar.gz格式。 - 删除指定天数(例如10天)前的旧备份。 - 输出备份成功的提示。 为了使脚本可执行,需通过`chmod u+x sqlAutoBak.sh`赋予其执行权限。然后,手动运行`./sqlAutoBak.sh`来检查备份...