使用s3cmd
http://www.dowdandassociates.com/blog/content/howto-install-aws-cli-amazon-simple-storage-service-s3-s3cmd/
http://www.dowdandassociates.com/blog/content/howto-rotate-logs-to-s3/
https://www.lustforge.com/2012/07/15/logrotate-apache-logs-to-amazon-s3/
s3cmd:http://s3tools.org/
s3cmd 使用说明:
http://s3tools.org/s3cmd-howto
aws ec2(ami)下安装s3cmd
git clone https://github.com/s3tools/s3cmd.git
cd s3cmd
sudo python setup.py install
ubuntu 下安装s3cmd
sudo apt-get install s3cmd
http://tecadmin.net/install-s3cmd-manage-amazon-s3-buckets/
配置
s3cmd --configure
新建bucket
s3cmd mb s3://logix.cz-test
列出所有bucket
s3cmd ls
列出某个bucket的内容
s3cmd ls s3://logix.cz-test
上传文件到bucket
s3cmd put addressbook.xml s3://logix.cz-test/addrbook.xml
下载文件到本地
s3cmd get s3://logix.cz-test/addrbook.xml addressbook-2.xml
删除bucket(只能删除空的bucket,有文件删除不了)
s3cmd rb s3://logix.cz-test
删除文件
s3cmd del s3://logix.cz-test/addrbook.xml s3://logix.cz-test/storage.jpg
同步文件到S3
http://s3tools.org/s3cmd-sync
将httpd目录下的文件都同步到s3
s3cmd sync /var/log/httpd/* s3://your_bucket_name/httpd/
------------------------------
下面是logrotate的介绍
logrotate
http://huoding.com/2013/04/21/246
http://www.codeceo.com/article/linux-logrotate-usage.html
http://www.linuxcommand.org/man_pages/logrotate8.html
logrotate 的配置文件是 /etc/logrotate.conf 主要参数如下表:
参数 功能
compress 通过gzip 压缩转储以后的日志
nocompress 不需要压缩时,用这个参数
copytruncate 用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate 备份日志文件但是不截断
create mode owner group 转储文件,使用指定的文件模式创建新的日志文件
nocreate 不建立新的日志文件
delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。
errors address 专储时的错误信息发送到指定的Email 地址
ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。
notifempty 如果是空文件的话,不转储
mail address 把转储的日志文件发送到指定的E-mail 地址
nomail 转储时不发送日志文件
olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir 转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
daily 指定转储周期为每天
weekly 指定转储周期为每周
monthly 指定转储周期为每月
rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~
size size 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).
如果要同步自定义路径下的log文件,可以自己在/etc/logrotate.d/目录下新建一个文件,输入内容,postrotate的同步脚本也可以放在sh文件中
/home/web/message_center/log/* {
hourly
su www-data
missingok
rotate 5
nocompress
notifempty
size 1k
sharedscripts
postrotate
/home/web/message_center/sync.sh
endscript
}
手动执行logrotate
sudo logrotate -f /etc/logrotate.d/httpd (如果带了-d是模拟演示。不会实际执行)
参考:
http://zylhz.com/?p=120
手动执行logrotate
logrotate可以在任何时候从命令行手动调用。
要调用为/etc/lograte.d/下配置的所有日志调用logrotate:
# logrotate /etc/logrotate.conf
要为某个特定的配置调用logrotate:
# logrotate /etc/logrotate.d/nginx-access
预先执行logrotate
排错过程中的最佳选择是使用‘-d’选项以预演方式运行logrotate。要进行验证,不用实际轮循任何日志文件,可以模拟演练日志轮循并显示其输出。
# logrotate -d /etc/logrotate.d/nginx-access
强制执行logrotate
即使轮循条件没有满足,我们也可以通过使用‘-f’选项来强制logrotate轮循日志文件,‘-v’参数提供了详细的输出。
# logrotate -vf /etc/logrotate.d/nginx-access
Logrotate日志信息
logrotate自身的日志通常存放于/var/lib/logrotate/status目录。如果处于排障目的,我们想要logrotate记录到任何指定的文件,我们可以指定像下面这样从命令行指定。
# logrotate –s /var/log/logrotate-status -vf /etc/logrotate.d/nginx-access
cron 说明
http://cering.github.io/2015/11/02/%E8%BD%AC-Linux%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1crontab-cron-d%E4%BB%8B%E7%BB%8D/
发现cron 有执行,但是sync没成功, 通过查看系统email,
sudo cat /var/spool/mail/root
发现了问题所在,/bin/sh: /home/log/s3.log: No such file or directory
不存在这个文件。怎么会抛出这个文件呢?原来是在crontab中设置了输入日志路径是/home/log/s3.log。手动创建这个路径和文件,并赋予权限。
再次执行,出了这个/bin/sh: /home/s3_sync_httpd.sh: Permission denied 错误,给它权限。再次执行
ERROR: /root/.s3cfg: None
ERROR: Configuration file not available.
ERROR: Consider using --configure parameter to create one.
出了这个错误。手动执行sh /home/s3_sync_httpd.sh是正常同步的。而在crontab中有这个问题。
在做s3cmd --configure 的时候,生成了一个配置文件/home/ec2-user/.s3cfg
New settings:
Access Key: xxx
Secret Key: xxx
Default Region: us-west-2
Encryption password: nmg
Path to GPG program: /usr/bin/gpg
Use HTTPS protocol: True
HTTP Proxy server name:
HTTP Proxy server port: 0
Test access with supplied credentials? [Y/n] Y
Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)
Now verifying that encryption works...
Success. Encryption and decryption worked fine :-)
Save settings? [y/N] Y
Configuration saved to '/home/ec2-user/.s3cfg'
用ls /home/ec2-user .* -l 可以列出隐藏文件。这个配置文件应该是在/home/ec2-user 下而不是在/root/下。因此。我们在sh文件中要指定运行的默认路径
#!/bin/bash
/usr/local/bin/s3cmd sync /var/log/httpd/* s3://xxx/s3_httpd/
在重启下service crond restart
终于成功了。正常上传,上传日志也输出到/home/log/s3.log 了
----------------
message center 不适用logrotate的几点说明:
1 logrotate会将log文件截断并重命名到old log路径下,若这样做的话,message center不会再重新生成log文件,导致log丢失
2 不會迭代處理子文件夾的log
s3cmd同步文件夹不需要自己处理文件是否更新的问题。s3cmd本身支持如果文件更新了才上传的判断。但是不要直接写某个文件名称。例如
/usr/local/bin/s3cmd sync ${sync_file_path} s3://${bucket_name}/xxx/${ip}/a.log >> ./sync_log.log
在旧的s3cmd版本(s3cmd version 1.1.0-beta3)中有无写a.log的效果是一样的,都会判断文件是否更新过。(通过size判断)
但是在新版本(s3cmd version 1.6.1)如果带了a.log则不论文件有无更新,一定会上传的。如果没有带a.log,则会判断是否更新(可以设置通过md5判断是否更新,当然速度会慢了),更新了才会上传
s3cmd 命令行参数说明:
http://s3tools.org/usage
分享到:
相关推荐
Apache Logs Viewer是一款专门用于分析Apache服务器日志的实用工具,版本号为5.39,本次更新包含了 Patch-URET 的修复和改进。这个软件能够帮助IT管理员和开发者有效地理解和解析Apache服务器生成的日志文件,从中...
此apache mod_log_rotate 是win32下vc9版的apache 日志文件管理工具。 使用: 复制mod_log_rotate.so到 Apache2/modules 确保你的系统安装了 Visual C++ 2008 Redistributable (可从这里下载:) ...
`laravel-logs-rotate` 是一个针对Laravel的特性,它涉及到如何管理和处理日志文件的滚动与压缩,以保持日志数据的有序性和存储效率。下面将详细阐述这个主题。 ### 1. 日志系统 Laravel内置了一个强大的日志系统...
ApacheLogsView破解,ApacheLogsView破解,ApacheLogsView破解,
如果遇到问题,查看错误日志(通常位于"logs"目录下的"error.log")会很有帮助。Apache也提供了丰富的文档资源,可以帮助解决常见的配置和运行时问题。 通过以上步骤,你可以在Windows 64位环境下成功安装和配置...
darks-logs可能是遵循某种开源许可证,如Apache License 2.0或MIT License,允许开发者在遵守特定条件的情况下自由使用和修改代码。 3. **README.md**:这是一个Markdown格式的文件,通常包含项目的基本信息、安装...
- Apache的日志文件默认位于`%SystemDrive%\Apache2.2\logs`目录下,包括`access.log`(记录客户端请求)和`error.log`(记录错误信息)。通过分析这些日志,可以监控服务器状态,排查问题。 5. **其他扩展与集成*...
LOCATION '/path/to/apache_log.txt'; ``` 接下来,我们可以对这个日志数据执行各种统计分析操作。例如: - 统计访问量最高的页面: ```sql SELECT url, COUNT(*) as visit_count FROM apache_logs GROUP BY url ...
CustomLog /path/to/your/trac/logs/access.log combined ``` 3. 保存配置并重启 Apache 服务,以应用新的配置。 现在,你应该可以在浏览器中访问 `http://your.trac.domain/`,看到你的 Trac 系统了。在 Trac 中...
日志文件通常位于logs目录下。 7. **readme_first.html**:这个文件很可能是提供给用户的初始指南,里面可能包含了一些安装、配置和使用Apache 2.2.29-x64的重要信息和建议。 在使用Apache 2.2.29-x64时,确保遵循...
### Linux Apache环境多域名配置详解 #### 一、前言 在互联网开发中,单一服务器部署多个项目并分别对应不同的域名是一种常见的需求。这不仅能够提高服务器资源的利用率,还能帮助开发者更好地组织和管理不同类型...
在Tomcat6下使用Log4j记录日志,天创建新日志文件时(日志文件设置为:org.apache.log4j.DailyRollingFileAppender)报: log4j:ERROR Failed to rename错误; 网上查找了下原因,大概意思是日志文件始终被占有,所以...
Apache 服务安全加固指南 Apache 服务安全加固是非常重要的,以下是相关知识点的详细说明: 一、账号设置 Apache 服务需要以专门的用户帐号和组运行,以避免使用root权限运行 Apache,从而提高安全性。为此,...
2. 错误日志与访问日志:在logs目录下,分别记录了服务器运行时的错误信息和客户端访问记录。 3. 性能监控:使用工具如ApacheBench进行压力测试,评估服务器性能。 五、安全与最佳实践 1. 定期更新Apache以获取...
- `logs`:日志文件存储的地方,用于调试和监控。 - `webapps`:默认的Web应用程序部署目录,`.war`文件或已展开的目录可以直接放入此目录启动应用。 - `work`:存放Tomcat在运行时生成的临时文件和编译后的JSP...
这个压缩包包含了Apache服务器的所有核心组件和必要的配置文件,如httpd.exe(服务器主程序)、conf目录(存储配置文件)以及logs目录(存放日志文件)等。 首先,你需要下载这个压缩包并解压到你希望Apache运行的...
【Apache+SVN+Trac】是一个常见的项目管理和版本控制系统组合,主要用于软件开发团队协作。Apache 作为Web服务器,Subversion (SVN) 提供版本控制功能,而 Trac 则是一个集成的项目管理工具,提供了缺陷跟踪、文档...
- **设置日志**:`JkLogFile logs/mod_jk.log` 设置日志文件位置,`JkLogLevel info` 设置日志级别为信息级别。 - **配置虚拟主机**:`ServerAdmin localhost` 指定服务器管理员,`DocumentRoot` 设置网站根目录,...