linux常用命令记录
1、授予某个用户具备root用户的权限
vim /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
用户名 ALL=(ALL) ALL ## 更改用户名即可完成授权
2、退出并保存的两种方式:
1、:wq
2、ZZ ## 没有冒号,ZZ大写
3、scp(secure copy)安全拷贝,主要用于服务器之间的数据拷贝。
使用方式:
scp -r $pdir/$fname $user@$host:$pdir/$fname
命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
特殊用法:scp -r $user@$host:$pdir/$fname $user@$host:$pdir/$fname
4、rsync 远程同步工具
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:用rsync复制文件要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
基本语法
rsync -rvl $pdir/$fname $user@$host:$pdir/$fname
命令 选项参数 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
注:-r:递归,-v:显示复制过程,-l:拷贝符号连接。
利用rsync 远程同步工具可以编写脚本,快速的完成集群搭建时文件远程同步。
5、SSH远程免密登录配置
(用户目录/.ssh/)
cd
ls -la
cd .ssh
ssh-keygen -t rsa (四个回车)
#会用rsa算法生成私钥id_rsa和公钥id_rsa.pub
ssh-copy-id host
再次ssh host,此时应该不再需要密码
退出SSH远程登录:exit
6、crontab定时任务的配置
设置任务:crontab -e
* * * * * date >> /home/mydate; ## 保存并退出;这句命令的意思是每隔一分钟把当前系统时间追加到/home/mydate中去.
*:分钟(0-59) *:小时(0-23) *:日(1-31) *:月(1-12) *:星期几(0-6)
项目 |
含义 |
范围 |
第一个“*” |
一小时当中的第几分钟 |
0-59 |
第二个“*” |
一天当中的第几小时 |
0-23 |
第三个“*” |
一个月当中的第几天 |
1-31 |
第四个“*” |
一年当中的第几月 |
1-12 |
第五个“*” |
一周当中的星期几 |
0-7(0和7都代表星期日) |
(2)特殊符号
表1-48
特殊符号 |
含义 |
* |
代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。 |
, |
代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令 |
- |
代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令 |
*/n |
代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令 |
(3)特定时间执行命令
表1-49
时间 |
含义 |
45 22 * * * 命令 |
在22点45分执行命令 |
0 17 * * 1 命令 |
每周1 的17点0分执行命令 |
0 5 1,15 * * 命令 |
每月1号和15号的凌晨5点0分执行命令 |
40 4 * * 1-5 命令 |
每周一到周五的凌晨4点40分执行命令 |
*/10 4 * * * 命令 |
每天的凌晨4点,每隔10分钟执行一次命令 |
0 0 1,15 * 1 命令 |
每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。 |
如何调度多个任务;
1、直接在crontab -e中定义多个任务命令;(不推荐使用)
2、可以把所有的任务写到一个可执行文件(shell编程)中.sh为后缀,然后在crontab -e中写入该可执行文件.(推荐使用)
vim /ome/task.sh:date >> /home/mydate
修改tash.sh的权限:chmod 744 task.sh
crontab -e: * * * * * /home/task.sh
crontab -r:终止当前的任务调度;
crontab -l:列出当前有哪些任务调度;
service crond restart;重启任务调度;
7、配置时间同步
检查ntp是否安装:
[root@node1 ~]# rpm -qa|grep ntp
ntp-4.2.6p5-15.el6.centos.x86_64
fontpackages-filesystem-1.41-1.1.el6.noarch
ntpdate-4.2.6p5-15.el6.centos.x86_64
安装ntp:yum install ntp -y
更新同步时间:ntpdate ntp7.aliyun.com
时间服务器可以选择公共的,也可以选择公司内部搭建的。
搭建时间服务器的步骤:必须root用户
1、安装ntp
2、修改ntp配置文件
vim + /etc/ntp.conf
修改内容如下
a)修改1(授权192.168.1.0-192.168.1.255网段上的所有机器可以从这台机器上查询和同步时间)
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap ##192.168.1.0根据网络自己调整
b)修改2(集群在局域网中,不使用其他互联网上的时间)
修改前:
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
修改后:
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
c)添加3(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)
server 127.127.1.0
fudge 127.127.1.0 stratum 10
3、修改/etc/sysconfig/ntpd 文件
vim + /etc/sysconfig/ntpd
增加内容如下(让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes
4、重新启动ntpd服务
service ntpd status
ntpd 已停
service ntpd start
正在启动 ntpd: [确定]
5、设置ntpd服务开机启动
chkconfig ntpd on
其他服务器同步时间的配置:必须root用户
1、在其他机器配置10分钟与时间服务器同步一次
crontab -e
编写定时任务如下:
*/10 * * * * /usr/sbin/ntpdate node1
2/修改任意机器时间
date -s "2017-9-11 11:11:11"
3/十分钟后查看机器是否与时间服务器同步
date
8、Linux的运行级别:0 1 2 3 4 5 6
0:关机;1:单用户;2:多用户状态没有网络服务;3:多用户状态有网络服务;4:系统未使用保留给用户;5:图形界面;6:系统重启;
命令:init [0123456]
常用的运行级别:3和5
如果要修改默认的运行级别,需要修改文件/etc/inittab中id:5:initdefault:这一行中的数字;
vim + /etc/inittab:
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
重启虚拟机的方式:init 6 / reboot