如何调试定时任务:
查看错误日志
/var/log/cron
学会最小化排除:
先清空,>/var/log/cron 然后再检测和观察。
增加执行任务频率调试任务,把频率调快。
把定时任务执行时间
比当前时间拖后五分钟
例如:00 03 * * *执行,当前5:00,咱们就把时间调整 05 05 * * *,有个五分钟提前量
调整系统时间。(date -s){测试环境可用,企业环境不可调整}
通过脚本日志输出调试定时任务
把输出内容追加到临时文件。
注意点:有时候程序只能执行一次,一定要在测试环境测试好,然后直接复制到正式环境
代码发布流程:办公室测试环境;IDC机房测试环境;IDC机房正式环境。
案例(1): no space left on device “磁盘满的报错”,原因往往是inode 占满了.
df -i
因为定时任务没有加&>/dev/null ,
案例(2):程序手动可执行,放定时任务执行不执行。
原因:环境变量错误
定时任务在执行脚本的时候,多数情况下没办法加载环境变量
具体为crond执行shell时只能识别为数不多的环境变量,普通环境变量一般无法识别
所有运维都会把变量放到此文件/etc/profile
第十四章,用户管理
用户相关文件:etc/passwd “用户所在文件”/etc/shadow “密码所在文件”
useradd gaopan 添加用户实际上就是修改上述两个文件
passwd gaopan改密码就是修改密码所在文件
用户组相关文件:/etc/group “用户组所在文件” /etc/gshadow “用户组密码所在目录(废弃状态)”
etc/passwd文件内容:
etc/passwd解释器:
/bin/bash
/bin/sync
/sbin/halt
/sbin/nologin
/sbin/shutdown
bash(命令解释器)centos7默认解释器是bash
/etc/shadow文件内容:
root:x:0:0:root:/root:/bin/bash
/etc/group 文件内容:root:x:0:
useradd “添加用户”
/etc/default/useradd 文件 useradd命令配置文件
修改这个文件的方法:
useradd –D 例如:Useradd -D -s /bin/sh
vim 编辑
添加用户要用的文件:
/etc/login.defs 默认添加用户信息文件,不要修改。(仅做了解)
删除用户:1.userdel .userdel –r递归删除;
2.编辑/etc/passwd 把要删除的用户添加注释
修改用户密码:
passwad 用户
不交互修改密码:
day2
输入命令:chage –l 用户
翻译:
Last password change : Mar 25, 2019
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between passwordchange : 0
Maximum number of days between passwordchange : 99999
Number of days of warning before passwordexpires : 7
su - “切换用户”
国外:1.先登录普通用户,没事不登录root,需要权限时再用root。
这样管理,必须知道root密码(安全隐患)
需求:
不需要root密码还能管理服务器
最小化管理服务器,想关机,给halt权限。
Sudo 命令:可以以最小化的权限(单个命令),在执行命令时拥有root用户的权限
针对用户,给某个用户以root身份执行命令
配置sudo
Sudo是一个提权的命令(对应权限通过读取/etc/sudoers文件实现的)
配置/etc/sudoers 可以使用visudo实现)
[root@oldboy58centos7.6 ~]# visudo
“100gg”第100行
root ALL=(ALL) ALL
oldboy ALL=(ALL) /usr/bin/ls,/bin/cp <=====增加的一行
查命令的全路径:which ls
[oldboy@oldboy58centos7.6 ~]$ sudo ls /root
gaopan.log oldboy pass test.txt user.log
给oldboy 管理员(角色转换)
增加这样一行:oldboy ALL=(ALL) NOPASSWD: ALL
在oldboy里面切换root
[oldboy@oldboy58centos7.6 ~]$ sudo su -
Last login: Tue Mar 26 10:17:14 CST 2019from 10.0.0.1 on pts/1
[root@oldboy58centos7.6 ~]# pwd
/root
day3
磁盘
磁盘的接口:sata,sas。(主流)
企业默认买SAS硬盘。满足容量的基础上尽量保持四块以上磁盘,(15000转/分)
扇区:512字节
512*磁道扇区数量=磁道大小
磁道大小*磁道数=盘面大小
盘面大小*磁头数=磁盘容量
Fdisk –l 查看磁盘
awk计算磁盘大小:
echo 512 632610 255|awk '{print $1*$2*$3*$4/1000000000}'
21.468
磁盘读写:
按柱面读写数据,因为磁头切换速度快(一个信号),换磁道要寻道,要位移,做工,速度慢,影响效率。
本章重点小结:
1
、名词:磁道,柱面,扇区。
2
、数据在磁盘的位置,三维地址,0磁头0磁道1扇区。
3
、磁盘的容量计算。
4
、磁盘读写数据的原理。
day4
磁盘做RAID
Raid(磁盘阵列)
生产常用:0,1,5,10(0+1)
冗余:重复配置系统的一些部件,当系统发生故障时,冗余配置工作。
技术:
软raid:软件实现的raid功能(系统层面实现,性能差)
硬raid:通过硬件实现的raid功能(硬件层面实现,新能号)
主板板载raid:功能弱,0,1
独立raid卡:功能强,0,1,5,10(工作选择)
LVM:逻辑卷管理,灵活的管理磁盘的容量
LVM是软件层面实现的,新能太低;性能降低5-10%
买服务器插满磁盘,分区规划好,永远不需要LVM.
用raid直接好处:数据安全;提升数据读写性能;提供更大的单一逻辑盘数据容量存储。
Raid0:
五,分区实践
磁盘分区关键就是改64字节的分区表。
磁盘分区daisk命令。修改MBR分区表,MBR格式;
缺陷:被修改的磁盘大小不能大于2T
磁盘分区其他命令parted ,gpt格式分区格式,既能修改2T,也能修改大于2T的磁盘
小于2T就用fdisk
大于2T就用parted
fdisk /dev/sda 开始分区
Welcome tofdisk (util-linux 2.23.2).
Changes willremain in memory only, until you decide to write them.
Be carefulbefore using the write command.
Command (m forhelp): m 获取帮助
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition 删除一个分区
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu 查看帮助
n add a new partition 添加一个新分区
o create a new empty DOS partition table
p print the partition table 查看分区结果
q quit without saving changes 退出不保存
s create a new empty Sun disklabel
t change a partition's system id 改变分区雷星星
u change display/entry units
v verify the partition table
w write table to disk and exit 保存并退出
x extra functionality (experts only
ddif=/dev/sda of=/dev/sdc bs=512 count=10240
来源 生成文件系统 block大小 块个数
day 5
Parted如何分区?
parted /dev/sdd 命令行开始分区
mklabel gpt
I 忽略
mkpart primary 0 480
mkpart primary 481 580
mkpart logic 581 600
刚买的服务器 4块2T ,要做RAID5 ,装系统怎么办?方法一:raid raid5后,6T ,允许你把6T分成虚拟磁盘
200G分成第一个虚拟磁盘剩下不分区留着装系统后(parted)
方法二:装系统过程中有这个功能,系统镜像支持GPT格式分区,很隐蔽
方法三:引导工具,进入然后用partde分区。
企业分区方式:
1.文件系统:计算机存储和组织数据的方法或者机制。ç=======是一个软件
2.硬盘,物理介质,需要文件系统来驱动;
文件系统实现通过磁盘帮助管理规划,存取数据;
3.文件系统种类?
Windows NTFS,fat32 ,msdos
Linuix: ext2, ext3(c5),
ext4(c6), xfs(c7), btrfs
4.创建文件系统实践
[root@oldboy58centos7.6~]# mkfs -t ext4 /dev/sdb1 ç=====mkfs.ext4
其实关键就是生成一定数量的inode和block
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
38456 inodes, 153600 blocks
7680 blocks (5.00%) reserved for the superuser
First data block=1
Maximum filesystem blocks=33816576
19 block groups
8192 blocks per group, 8192 fragments pergroup
2024 inodes per group
Superblock backups stored on blocks:
8193,24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystemaccounting information: done
临时挂载:
mount /dev/sdb1 /data
查看挂载:
df –h
或者
cat /proc/mount
测试
touch /data/oldboy
卸载
umount -lf /data >====强制卸载
另一种格式化文件系统
mkfs.xfs /dev/sdb2
meta-data=/dev/sdb2 isize=512 agcount=4, agsize=9600 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=38400,imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks,lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
开机自动挂载
etc/fsatab ç======开机自动挂载文件
UUID=c21c8d6d-a260-4797-890f-3c4eb05b1179/ xfs defaults 0 0
设备 挂载点 文件系统类型 默认挂载选项 是否备份和开机检查(0是不检查)
Vim里面编辑
/dev/sdb2 /data xfs defaults 0 0
保存退出重启系统
其他方式:
sbin/mount /dev/sdb2 /data ç======放入/etc/rc.local实现自动挂载,但不推荐
查看:df –h df –i
dumpe2fs /dev/sdb1 ç===查看exe文件系统内部细节
磁盘检查
Fsck
Swap作用,内存不够用,用来充当内存,一般给1.5倍,大于8g给8g
将来java服务,可能存在内存泄漏问题,就会占用swap,导致操作系统性能下降。
查看内存:
[root@oldboy58centos7.6 /data]# free -m
total used free shared buff/cache available
Mem: 1819 133 1497 9 188 1512
Swap: 1999 0 1999
增加swap