分类目录归档:Linux

Linux Logrotate 配置使用

Logrotate 会自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。解决日志不断增大,备份,处理难的问题。

日志配置

/var/log/log-file {
monthly
rotate 5
compress
delaycompress
missingok
notifempty
create 644 root root
postrotate
/usr/bin/killall -HUP rsyslogd
endscript
}

monthly: 日志文件将按月轮循。其它可用值为‘daily’,‘weekly’或者‘yearly’。
rotate 5: 一次将存储5个归档日志。对于第六个归档,时间最久的归档将被删除。
compress: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩。
delaycompress: 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。
missingok: 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
notifempty: 如果日志文件为空,轮循不会进行。
create 644 root root: 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。
postrotate/endscript: 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。

 

compress 启用压缩,指的是轮替后的旧日志,这里默认用的是gzip压缩的
compressoptions 以gzip -9的模式压缩
uncompresscmd 解压日志,默认是gunzip
daily 每天轮替选项
dateext 轮替的日志文件会附加上一个短横线和YYYYMMDD格式的时间戳
delaycompress 将以前的日志文件压缩推迟到下一次轮替
ifempty 即使日志文件是空的也轮替
mail 将轮替后的文件发送到指定E-mail地址
copytruncate 用于还在打开中的日志文件,把当前日志备份并截断,开始轮替
mailfirst/maillast 向邮件发送轮替文件/轮替后历史文件(默认)
monthly 一个月轮替一次
nocompress 如果在logrotate.conf中启用了压缩,这里是做不用压缩的参数
nomail 不发送邮件到任何地址
ifempty 如果日志时空的就不轮替
olddir directory 轮替后日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
postrotate/endscript 在做完轮替后的命令,两个关键字必须单独成行,使用的操作在2者之间相当于分组“{}”,注意的使用外部指令时要用绝对路径
prerotate/endscript 在做轮替前的命令,同上
rotate count 轮替最多保留之前的数据几次,超出的将被删除或邮件接收,设为0则不保存
size size 当日志增长到指定大小的时候开始轮替,它不会考虑
start count 轮替文件名基于这个数字。
例如,指定0时,原日志文件轮替的备份文件以.0为扩展名,如果指定9,就直接从.9开始跳过0-8
然后再继续向后轮替rotate指定的次数。
weekly 如果当前的星期几比上次轮替的星期几少,或者过了一个多星期,就会发生轮替通常是在每周的第一天轮替,如果logrotate不是每天运行的,会在第一次有机会时进行轮替。
yearly 如果当前年份不同于上次轮替的年份,则进行日志轮替
create mode owner group 在轮替动作之后,postrotate脚本执行之前,立即使用刚轮替的日志文件名创建日志文件。
MODE 指定日志文件的权限(0660之类)
OWNER 指定日志文件的属主
GROUP 指定日志文件的属组
extension ext 日志文件可在轮替后使用指定的EXT扩展名。如果使用压缩,通常EXT后还会加上压缩文件的扩展名,通常是.gz。例如想把mylog.foo轮转为mylog.1.foo.gz而不是mylog.foo.1.gz

依据日志文件大小来轮循日志
/var/log/log-file {
size 50M
rotate 5
create 644 root root
postrotate
/usr/bin/killall -HUP rsyslogd
endscript
}
日志文件名中包含日期信息
/var/log/log-file {
monthly
rotate 5
dateext
create 644 root root
postrotate
/usr/bin/killall -HUP rsyslogd
endscript
}

运行

全部运行
logrotate /etc/logrotate.conf
指定配置运行
logrotate /etc/logrotate.d/log-file
测试
logrotate -d /etc/logrotate.d/log-file
强制轮循
logrotate -vf /etc/logrotate.d/log-file
logrotate运行日志
日志通常存放于/var/lib/logrotate/status
也可以指定
logrotate -vf –s /var/log/logrotate-status /etc/logrotate.d/log-file
定时任务
默认在 /etc/cron.daily/logrotate
可查看脚本具体情况

Java环境变量

主要配置

  • 配置JAVA_HOME
  • 配置PATH
  • 配置CLASS_PATH

如:

在/etc/profile下增加或在~/.bash_profile下增加
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

Linux SSH免输入密码登录

场景

linux主机A ssh登录到 linux 主机B  ,免输入主机B的密码,直接登录到主机B上。

原理

利用ssh 的 rsa 认证登录。

实现

确认ssh服务开始rsa认证

确认主机B的ssh服务的rsa认证配置(/etc/ssh/sshd_config)是开启的。
RSAAuthentication yes
PubkeyAuthentication yes

主机A生成rsa密钥对

[root@hostA ~]# ssh-keygen -t rsa -P ”

-P表示密码,-P ” 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
该命令将在/root/.ssh目录下面产生密钥对id_rsa(私钥)和id_rsa.pub(公钥)。

复制主机A的id_rsa.pub(公钥)至主机B上

[root@HostA ~]# scp /root/.ssh/id_rsa.pub root@192.168.1.101:/root/.ssh/hosta_id_rsa.pub
root@192.168.1.101’s password:

然后登录主机B,确认/root/.ssh目录下是否已经存在文件ssh rsa 认证文件 authorized_keys,存在则:

[root@HostB ~]#cat hosta_id_rsa.pub >> $HOME/.ssh/authorized_keys

将主机A的公钥添加至认证文件中。

不存在authorized_keys 文件 则:

[root@HostB ~]#mv hosta_id_rsa.pub $HOME/.ssh/authorized_keys

[root@HostB ~]#chmod 600 $HOME/.ssh/authorized_keys

把主机A的公钥设置为认证文件,具权限改为600(必须600)

注:当前示列中主机B的用户为root用户,其他用户则对应相应用户的目录。

免密码登录是通用rsa密钥对认证,示例中为linux主机A,换成其他的客户端也是同样的原理。生成密钥对进行认证登录的。

Linux终端命令行快捷键

光标移动:

Ctrl+n:相当于方向向下的方向键。

Ctrl+p:相当于方向向上的方向键。

Ctrl+a:(ahead) 光标回到命令行首。

Ctrl+e:(end) 光标回到命令行尾。

Ctrl+b:(backwards) 光标向行首移动一个字符。

Ctrl+ f:(forwards) 光标向行尾移动一个字符。

字符删除:

Ctrl+w:删除光标处到行首的字符。

Ctrl+k:删除光标处到行尾的字符。

Ctrl+u:删除整个命令行文本字符。

Ctrl+h:向行首删除一个字符。

Ctrl+d:向行尾删除一个字符。

字符粘贴

Ctrl+y:粘贴。

字符替换

Ctrl+t: 交换光标所在字符和其前的字符。

命令

Ctrl+p:(previous) 上一个使用的历史命令。

Ctrl+n:(next) 下一个使用的历史命令。

Ctrl+r:(retrieve) 快速检索历史命令。

Ctrl+i:相当于Tab键。

Ctrl+o:相当于Ctrl+m。

Ctrl+m:相当Enter键。