Ubuntu 使用crontab定时备份log
rsyslog
在Linux上,默认情况下,所有日志文件都位于/var/log目录下,有几种类型的日志文件存储不同的消息,可以是cron,内核,安全性,事件,用户,这些日志文件大多由rsyslog服务控制。
在最近使用systemd的系统上,一些日志由journald守护程序管理,它们是二进制格式的,这些日志是易失性的,因为它们被写入RAM并且不能承受系统重启,它们经常在/run/log/journal/上找到,但请注意,也可以将journald配置为通过写入文件来永久存储日志消息。
我们将把rsyslog服务器配置为集中式日志管理系统,rsyslog服务将侦听udp/tcp端口, rsyslog使用的默认端口是514,在客户端系统上,rsyslog将通过UDP或TCP端口通过网络收集日志并将日志发送到rsyslog服务器。
使用syslog消息时,存在表征日志文件的优先级/严重性级别,即:
emerg,panic(紧急):0级 - 这是最低的日志级别,系统无法使用。
警报(警报):1级 - 必须立即采取行动。
错误(错误):3级 - 危急情况。
警告(警告):等级4 - 警告条件。
通知(通知):第5级 - 正常但重要的条件。
info(信息):6级 - 信息性消息。
debug(Debugging):Level 7 - 这是最高级别 - 调试级别的消息。
安装Rsyslog
默认情况下,在Ubuntu 16.04系统上Rsyslog安装非常的简单,只需要一个命令,你可以通过运行以下命令来安装它:
sudo apt-get install rsyslog
安装后,检查服务以查看它是否正在运行,运行sudo systemctl status rsyslog命令即可:
systemctl status rsyslog
一、日志外发(日志服务器配置)
1、登录到服务器/日志服务器
2、编辑配置文件
sudo vim /etc/rsyslog.conf
取消注释udp和tcp端口绑定的行:
module(load="imudp")
input(type="imudp" port="514")
# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")
3、如果你想限制访问特定子网,IP或域,请添加如下:
$AllowedSender TCP, 127.0.0.1, 192.168.10.0/24, *.example.com
可以在输入input(type=“imtcp” port=“514”)行后添加上面的行,请记住用正确的值替换给定的值。如下:
input(type="imtcp" port="514")$AllowedSender TCP, 127.0.0.1, 192.168.10.0/24, *.example.com
4、创建用于接收远程消息的新模板(在日志服务器配置)
让我们创建一个模板,指示rsyslog服务器如何存储传入的syslog消息,在GLOBAL DIRECTIVES部分之前添加模板:
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?remote-incoming-logs
& ~
收到的日志将使用上面的模板进行解析并存储在目录/var/log/中,文件命名遵循约定:%HOSTNAME% and %PROGRAMNAME%变量,即客户端主机名和生成日志消息的客户端工具:
& ~指示rsyslog守护程序仅将日志消息存储到指定的文件。

可以使用的其它变量包括:
%syslogseverity%, %syslogfacility%, %timegenerated%, %HOSTNAME%, %syslogtag%, %msg%, %FROMHOST-IP%, %PRI%, %MSGID%, %APP-NAME%, %TIMESTAMP%, %$year%, %$month%, %$day%
重新启动rsyslog服务以使更改生效:
sudo systemctl restart rsyslog
5、确认服务是否正在侦听已配置的端口:
ss -tunelp | grep 514

6、配置Rsyslog防火墙
如果你的ufw防火墙服务正在运行,请允许rsyslog防火墙端口:
sudo ufw allow 514/tcp
sudo ufw allow 514/udp
4、保存退出,重启服务
service syslog restart
二、日志外发(客户端)
sudo vim /etc/rsyslog.conf
1、允许保留FQDN:
$PreserveFQDN on
2、添加远程rsyslog服务器:
*.* @10.1.30.33:514
还可以使用FQDN而不是服务器IP地址:
*.* @fqdn-of-rsysog-server:514
以上行将允许通过UDP发送日志,因为tcp使用@@而不是单个@:
*.* @@10.1.30.33:514
或者:
*.* @@fqdn-of-rsysog-server:514
当rsyslog服务器关闭时,还要添加以下内容:
$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1
然后重启rsyslog服务:
systemctl restart rsyslog
二、 本地定期备份
首先:
开启cron日志
vi /etc/rsyslog.d/50-default.conf
找到
#cron.* /var/log/cron.log
去掉注释
重启rsyslog
service rsyslog restart
此时就可以查看日志了
tail -f /var/log/cron.log
使用crontab
- 使用crontab
- 第一次使用需要选择编辑器
select-editor
crontab -e每天23.30运行备份脚本
30 23 * * * /bin/bash /var/back_sh/back.sh
给脚本权限
chmod 777 /var/back_sh/back.sh
或直接编辑(针对系统的定时任务)
vi /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
30 23 * * * root /bin/bash /var/back_sh/back.sh
注
每天23.10运行备份脚本
脚本内容:
echo "The program being executed......"
back_dir=/var/dengbao/log_back
file_dir=/var/log
#定义备份文件名字
file_name=`date +%Y-%m-%d --date='-1 day'`
if [[ ! -d "${back_dir}" ]]; then
mkdir "${back_dir}"
fi
if [[ ! -d "${back_dir}/${file_name}" ]]; then
mkdir "${back_dir}/${file_name}"
fi
cp -r ${file_dir}/* ${back_dir}/${file_name}/
echo "succeed"
欢迎关注公众号:

Ubuntu 使用crontab定时备份log的更多相关文章
- Linux下使用crontab定时备份日志
上周学习了Linux,其中有使用crontab定时备份日志的内容,现把主要步骤记录如下: 首先需要备份的日志的源目录位于/opt/lampp/logs/access_log 备份到/tmp/logs下 ...
- Python +crontab定时备份目录发送邮件
公司有一台静态页面展示服务器仅供给客户展示我们做的项目,当时买的时候是最低配,也就是磁盘空间为20G的系统盘,考虑到代码量很小所以没有另加磁盘,后来项目多了,就写了个crontab 定时备份目录. 就 ...
- linux下使用crontab定时备份MYSQL数据库的方法:
摘要 linux下使用crontab定时备份MYSQL数据库的方法: 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ------------------------ ...
- MySQL定时备份之使用Linux下的crontab定时备份实例
这篇文章主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下 复制代码代码如下: ##################################### ...
- Linux下MySQL备份以及crontab定时备份
1. 备份某个数据库 ################################################################## # 备份某个数据库 ############ ...
- MySQL使用crontab定时备份不执行问题
在使用crontab定时备份数据库时,发现并没有执行备份命令. 下面是定时备份的代码: 30 1 * * * /usr/local/mysql/bin/mysqldump --defaults-ext ...
- Linux 使用crontab定时备份Mysql数据库
项目中数据库的数据是至关重要的!在实际项目中,遇到有客户机房断电导致数据库数据丢失的问题,又因为备份容灾不及时,导致部分数据恢复不了,而刚好这部分丢失的数据对于客户来说又是至关重要的,那么怎么办呢?盲 ...
- Ubuntu下的定时备份数据库
1.编写备份数据库的shell脚本 mysqldump -uUserName -pPassword dbName >/XXX/XXXX/XXXX/fileName_$(date +%Y%m%d_ ...
- Gitlab备份,Crontab定时备份
1:Gitlab备份非常简单,只需要一条命令就可以创建完整的备份 gitlab-rake gitlab:backup:create 使用以上命令,就相当于在/var/opt/gitlab/backup ...
- ubuntu crontab 定时备份postgres数据库并上传ftp服务器
最近公司要求备份数据库,所以就查了比较作的资料.废话不多说,入正题. 目的:定期备份ubuntu下的postgres数据库,打包上传到指定ftp服务器. 经过查找资料,解决方法: ①编写备份数据库.打 ...
随机推荐
- DeepSeek 不再卡顿,从此告别服务器繁忙,请稍后再试(建议收藏!)
大家好,我是六哥. 由于DeepSeek真的太火了,也许你也跟我一样,常会遇到这样的情况: 真的让人抓狂,10条回复里常常有9条是"服务器blabla,请稍后重试",看到这话,就问 ...
- [业界方案] 智能运维AIOps-学习笔记
[业界方案] 智能运维-学习笔记 目录 [业界方案] 智能运维-学习笔记 0x00 摘要 0x01 AIOps 背景 1.1 AIOps概述 1.2 AIOps场景 1.3 AIOps能力 1.4 A ...
- Q:linux(群晖)修改网卡速率
问题:群晖速度莫名其妙变成了1MB/s左右,查看网络状态 网卡配置变成 全双工10Mb/s 解决方法 首先开启ssh登录权限 1.控制面板 – 终端机和SNMP里,开启SSH功能. 2.通过ssh连接 ...
- Java SPI机制及实现
一.简介 SPI 的全称为 (Service Provider Interface),是 JDK 内置的一种服务提供发现机制.主要由工具类 java.util.ServiceLoader 提供相应的支 ...
- 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
家里小朋友养了一只小乌龟,到了冬天就冬眠了,早早地准备了一个冬眠箱,铺上椰土,在室温低于15℃时,就把小乌龟放到冬眠箱里,不一会儿它就自己钻入土中把自己藏了起来.按照惯例,需要每隔一定时间,对冬眠箱进 ...
- 如何为 .NET 在线客服系统的 Open Api 开放接口实现 QPS 限流功能
我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统.陆陆续续开发了几年,从一开始的偶有用户尝试,到如今线上环境和私有化部署均有了越来越多的稳定用户. 而我收到的用户需求也越来越多,产品化的 ...
- STM32的SYSTICK 定时器(系统滴答定时器)
什么是SysTick? 这是一个24位的系统节拍定时器system tick timer,SysTick,具有自动重载和溢出中断功能,所有基于Cortex_M3处理器的微控制器都可以由这个定时器获得一 ...
- macbookpro m3本地部署DeepSeek模型
macbookpro m3有着十分强大的性能.在deepseek如火如荼的当下,可以尝试在本地部署并使用.还可以将自己的文档作为语料喂给deepseek,使其能成为自己专属的AI助手. 本文介绍使用o ...
- 植物大战僵尸杂交版最新版(PC+手机+苹果)+ 修改器+高清工具
游戏介绍 <植物大战僵尸杂交版>在保留原作经典塔防玩法的基础上,进行了大胆创新和优化.潜艇伟伟迷通过融合多种植物和僵尸元素,创造了全新的游戏体验.玩家不仅能体验到熟悉的植物防御僵尸的乐趣, ...
- keycloak~refresh_token的标准化
内容大纲 refresh_token作用 使用方法 refresh_token规范 keycloak开启refresh_token的限制 refresh_token时的错误汇总 keycloak中re ...