Linux学习笔记(六):日志和计划任务
一、日志
系统日志
/var/log/cron记录了是否执行了某些使用crontab命令计划的脚本
/var/log/boot.log记录了系统在引导过程中发生的事件(Linux系统开机自检显示的过程)
/var/log/messages记录Linux操作系统常见的系统和服务错误信息
/var/log/secureLinnx系统安全日志,记录用户和工作变化情况、用户登陆认证情况
用户日志
/var/log/wtmp 该日志永久记录每个用户登录、注销及系统的启动、停机的事件;
是一个二进制文件,记录每个用户的登录次数和持续时间等信息。
使用last命令查看,输入 last -f /var/log/wtmp
/var/log/lastlog 记录最后一次用户成功登陆的时间、登陆IP等信息
/var/run/utmp
记录当前登录的每个用户的信息。如who、w、users、finger等就需要访问这个文件
/var/log/btmp
记录Linux登陆失败的用户、时间以及远程IP地址
last 用于显示用户最近登录信息
last |awk '{print $1,$3}'|sort -r -n|uniq -c|sort -r -n //配合着文本筛查
last -n 5 -a -i //-n参数显示前num个数,-a -i最后一列显示主机地址
lastb 用于显示登入系统失败的用户相关信息
查看历史命令记录文件~/.bash_history(隐藏文件)
用history命令查看历史命令
查看服务日志文件
/var/log/mail.log
/var/log/apache2/access.logerror.log
/var/log/mysql/error.log
/var/log/redis/redis.log
二、用户信息
/etc/passwd
/etc/passwd 查看户用户信息文件
root:x:0:0:root:/root:/bin/bash account:password:UID:GID:GECOS:directory:shell
用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell
无密码只允许本机登陆,远程不允许登陆
禁用或删除多余及可疑的帐号
usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头
userdel user 删除user用户
userdel -r user 将删除user用户,并且将/home目录下的user目录一并删除
三、计划任务
开机启动项
chkconfig 输出结果只显示SysV 服务,并不包含原生systemd 服务
要列出systemd 服务,执行 'systemctl list-unit-files’
查看rc.local文件(/etc/init.d/rc.local /etc/rc.local) ls -alt /etc/init.d/
cron配置文件
crontab命令用于定期执行程序
crond 命令每分钟会定期检查是否有要执行的工作 (新创建的 cron 任务会在 2 分钟后执行,通过重启 cron 马上执行)
cron的配置文件(作业列表)在以下文件夹找到相关配置文件
-
/var/spool/cron/ 目录存放的是每个用户(root)的crontab任务,每个任务以创建者的名字命名
-
/etc/crontab 调度各种管理和维护任务
-
/etc/cron.d/ 存放任何要执行的crontab文件或脚本
-
/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,每小时/天/星期、月执行一次
时间格式
* * * * * [user-name] command to be executed(执行程序)
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
#[user-name]可通过-u参数指定,但是前提是必须拥有该用户的权限
# * 取值范围内的所有数字; /每过多少个数字;-从X到Z; ,散列数字
每分钟都要执行 program,表示每小时都要执行程序,以此类推
a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,a-b 时表示从第 a 到第 b 小时都要执行,以此类推
*/n 时表示每 n 分钟个时间间隔执行一次,*/n 表示每 n 小时个时间间隔执行一次,以此类推
a, b, c,… 时表示第 a, b, c,… 分钟要执行,a, b, c,… 时表示第 a, b, c…个小时要执行,以此类推
crontab的使用
参数:-e (编辑工作表,默认为vi) ; -l (列出目前的时程表); -r ( 删除目前的时程表)
crontab * * * * * command //每1分钟执行一次
crontab 10,16 * * * * command //每小时的10分钟,16分钟执行一次
crontab 10,16 8-10 * * * command //八点到十点,每小时的10分钟,16分钟执行一次
crontab 10,16 8-10 */2 * * command //每隔两天的八点到十点,每小时的10分钟,16分钟执行一次
crontab 10,16 8-10 * 1,3 * command //每月的1、3号的八点到十点,每小时的10分钟,16分钟执行一次
crontab 10,16 8-10 * * 0 command //每周日的八点到十点,每小时的10分钟,16分钟执行一次
设置脚本路径
脚本中设置的路径必须为绝对路径
#!/bin/sh
. /etc/profile
. ~/.bash_profile
#在shell脚本的开头添加,配置环境变量
在 /etc/crontab 中添加环境变量,在执行命令之前添加
. /etc/profile;/bin/sh
,使环境变量生效
10 * * * * ./etc/profile;/bin/sh command //每10分钟执行一次