Linux vps 中使用ntp包自动校准时间

很多VPS安装完成后,过了很久才发现时间不准这个问题。有些是由于本身就没有调整好准确的时间,而有些则是因为时差问题导致连日期都有错误。本文将讲解ntpdate这一网络自动校时工具的安装与使用方法。

其实Linux中有个ntp包可以自动校准时间,并且非常好用。

Debian系统安装NTP校时包:

1 apt-get install ntpdate

CentOS系统安装NTP校时包:

1 yum install ntp

校时命令:

1 ntpdate cn.pool.ntp.org

如果想每隔一定时间自动校时,只需将上面的命令加入至Cron就行了:

1 00 12 * * * /sbin/ntpdate cn.pool.ntp.org

* cn.pool.ntp.org是ntp网络授时组织的中国授时源

————-

如果出现ntpdate: step-systime: Operation not permitted,说明vps不允许修改时间,可以使用:

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime


附 OpenVZ VPS不能修改时间的母鸡解决办法

因为系统架构的原因,OpenVZ的linux vps默认是不允许在客户在vps自行修改系统时间,当执行修改时间的操作时,会出错

[root@root ~]# date -s 10:22:33
date: cannot set date: Operation not permitted

解决办法:

1、在OpenVZ主服务器上打开ntp

yum install ntp

2、给客户vps开启修改系统时间的权限:

vzctl set (veid) --capability sys_time:on --save

如果执行这个命令后报错:

WARNING: Some of the parameters could not be applied to a running container.
        Please consider using --setmode option

请先停止该vps后再执行

vzctl stop (veid)
vzctl set (veid) --capability sys_time:on --save
vzctl start (veid)

这样客户就可以自己在vps里修改系统时间了:

[root@root ~]# date -s 11:17:40

Wed Feb 23 11:17:40 CST 2011

VPS中须掌握的常用Linux命令

新手对于Linux类操作系统的恐惧大多数都来自Linux无数难记的命令,但实际上真正需要熟练掌握的Linux命令并不是很多,并且在熟练使用后,你还会发现Linux下的命令比Windows下一层一层的控制台来得远远方便。

相信我,只要经常在LinuxShell环境下工作,你会很快对这个BT的操作系统游刃有余。

下面仅仅介绍一些与VPS息息相关的命令,并且用最通俗易懂的语言来解释这些命令的作用:

 

1、基本的文件目录操作:

显示当前所处的目录:pwd

直接输入pwd即可,服务器会返回你所在的完整目录。

在不同目录之间跳转:cd

进入当前用户的用户目录:cd ~

进入根目录:cd /

进入上层目录:cd ../

进入上上层目录:cd ../../

进入当前目录下的photos目录:cd photos

删除文件:rm

删除readme文件:rm readme (然后系统会询问你是否删除,输入y表示确认,然后回车即可)

强制删除readme文件:rm readme -f (此时系统不会询问而是直接删除)

强制删除photos目录:rm photos -rf (后面的-rf表示强制删除目录)

创建目录:mkdir

在当前目录中创建photos目录:mkdir photos

在根目录中创建photos目录:mkdir /photos

创建文件:touch

创建空白文件readme:touch readme

重命名/移动:mv

将photos目录重命名为pictures: mv photos pictures

对于文件也是一样:mv oldfile newfile

将photos文件/目录移动到根目录:mv photos /

将photos文件/目录移动到上层目录:mv photos ../

复制文件/目录:cp

命令格式与上面的mv一样,第一个参数是源,第二个参数是目标。

2、压缩与解压缩

Linux系统默认的标准压缩格式是tar.gz,对zip也有比较好的兼容性。我们强烈建议如果要对文件进行压缩,都采用tar.gz或zip格式。Linux与Windows都能读取tar.gz(但Windows不太好编辑或创建)

将filename.tar.gz解压到当前目录:tar zxf filename.tar.gz

将photos目录打包成photos.tar.gz文件:tar zcf photos.tar.gz photos

将photos.zip文件在当前目录解压:unzip photos.zip

3、磁盘操作

查看所有分区剩余空间与占用情况:df -hl

[root@pt ~]# df -hl
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
8.6G 3.9G 4.4G 47% /
/dev/sda1 99M 19M 76M 20% /boot
tmpfs 506M 0 506M 0% /dev/shm
/dev/sdb1 16G 3.3G 12G 22% /home/wwwroot
/dev/sdc1 16G 386M 15G 3% /usr/local/mysql/var

目前就只介绍这一个命令就行了,df命令其它的参数暂时没必要介绍。这条命令会将磁盘情况以最人性化的方式显示出来

4、内存操作

查看当前内存使用情况:free -m (m参数:用M为单位显示,该参数还可以为k、g)

[root@pt ~]# free -m
total used free shared buffers cached
Mem: 1010 978 31 0 275 360
-/+ buffers/cache: 342 667
Swap: 1023 0 1023

需要注意的是,实际占用内存并非上面显示的978M,而是:used-buffers-cached,所以上面显示的实际占用内存为978-275-360=343M

至于为什么会这样,请参考VPS管理百科的:Linux free命令实际内存占用全解析与内存工作方式

这种内存管理方式看起来会造成Linux总是占用了几乎所有的物理内存,但却能大大提高Linux的效率:内存作为最快的存储是用来用的,不是用来看的。

4、下载文件:wget

wget是非常好用的文件下载工具。

下载http://www.bootf.com/test.zip文件:wget http://www.bootf.com/test.zip

继续下载(断点续传):wget -c http://www.bootf.com/test.zip

5、进程管理器:top

直接执行top命令,即会显示一个类似于Windows任务管理器的界面,并且实时刷新。如果想对这个界面有深入的了解,参考:Linux下Top命令全解析

退出这个top命令,直接按q建即可。

6、文本文件编辑:vim

此编辑器杀伤力强大,且功能复杂(但是非常好用),详细介绍请参考:Linux下vi编辑器使用教程与用法大全

VPS下对mysql内存性能的优化

VPS的内存对性能至关重要,所以很有必要优化一下。

看了几篇针对vps小内存优化的文章,于是自己也动手参照优化下自己的mysql。

修改过调整好的 my.cnf ,service mysqld restart 启动时报错。

查看log,发现 skip-innodb / skip-bdb / skip-locking,这几个参数有问题。

 

继续学习,查资料,得知 使用的参数都是老版本的参数,mysql5.1对应的为:

skip-innodb  –>  loose-skip-innodb

skip-locking  –> skip-external-locking

skip-bdb (已经废除了skip-bdb这个参数!)

 

配置文件: /etc/my.cnf

# low memory stuff – Mr.Tang
# Tue May 26 22:23:15 CST 2015

[mysqld]

loose-skip-innodb
skip-external-locking
skip-host-cache
skip-name-resolve

character_set_server = utf8
default-storage-engine = myisam

key_buffer_size = 256M
key_buffer = 256K
max_allowed_packet = 1M
myisam_sort_buffer_size = 8M
net_buffer_length = 128K
query_cache_size= 16M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
sort_buffer_size = 1M
table_cache = 4M
table_open_cache = 16M
thread_cache_size = 8M
thread_stack = 131072

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
#safe-updates

[isamchk]
key_buffer = 8M
sort_buffer_size = 8M

[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

Linux下查询端口占用的进程pid

 

今天在CentOS下安装学习Jexus, 装好启动失败.  发现80端口占用了,才想起已经安装了amh.

于是按照windows下”netstat -a”, 查看网络端口连接.  但是显示的列表十分长, 不好查找…

加参数 , 发现几个容易查看的参数命令.
1. 不过滤显示

netstat -lnp

2.过滤. 最方便的,只显示80

netstat -lnp | grep "80"

3.使用 lsof 查询. 没有的话先安装

#yum install lsof #[安装lsof]
lsof -i:80

知道占用端口的进程后修改,可以终止进程:kill pid. 或者修改启动端口.

 

 

CentOS 桌面 + VNC 安装脚本

CentOS下的一段脚本.  直接一起安装桌面,XWindows,VNC远程控制,和支持中文.

#!/bin/bash

yum -y groupinstall "Desktop" #[安装桌面 ]
yum -y groupinstall "X Window System" #[安装XWindows]
yum -y groupinstall "Chinese Support" #[增加中文支持]

#echo 'LANG="zh_CN.UTF-8"' >> /etc/sysconfig/i18n #[设置中文]

startx #[启动XWindows]

#echo 'id:5:initdefault' >> /etc/inittab #[开机自动运行]

yum -y install tigervnc tigervnc-server #[安装VNC远程控制]

echo 'VNCSERVERS="1:root"' >> /etc/sysconfig/vncservers #[设置服务权限]
echo 'VNCSERVERARGS[1]="-geometry 1024x768"' >> /etc/sysconfig/vncservers #[设置服务参数]

vncpasswd #[这一步将会提示你设置VNC的密码]

#service vncserver restart #[重启]
service vncserver start #[启动]
#chkconfig vncserver on #[开机启动]

#后的注释项, 可以自己参考是否使用.  比如是否开机自动启动VNC.

桌面环境相关命令:

# 从命令行切换到桌面环境
startx

# 获取当前启动模式
systemctl get-default

# 修改启动模式为图形化
systemctl set-default graphical.target

# 修改启动模式为命令行
systemctl set-default multi-user.target

默认启动桌面环境后以 root 用户自动登录:

 
# 修改配置文件
vi /etc/gdm/custom.conf


# 增加如下配置
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=root
远程服务设置
# Windows 远程登录需要安装 Xrdp,需要 epel 源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y xrdp

# Xrdp 会调用 VNC,安装 tigervnc-server
yum install -y tigervnc-server

# 修改 Xrdp 最大连接数
vim /etc/xrdp/xrdp.ini
max_bpp=32

# 启动 Xrdp 并设置开机启动
systemctl start xrdp
systemctl enable xrdp

# 开放 3389 端口,或者关闭防火墙
firewall-cmd --permanent --zone=public --add-port=3389/tcp
firewall-cmd --reload
# 关闭防火墙
systemctl stop firewalld
# 禁止防火墙开机启动
systemctl disable firewalld
VNC 登录设置

用 VNC 客户端连接登录还需做一些设置

VNC 客户端下载:https://www.realvnc.com/en/connect/download/viewer/

# 为当前用户设置 VNC 密码,不然服务无法启动。此密码和系统密码不一样,这是使用 vnc viewer 登陆时使用的密码
vncpasswd

# 复制服务设置的模板
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
# 修改配置,以 root 用户为例,每个用户都需要单独设置
vim /etc/systemd/system/vncserver@\:1.service

# 将 <USER> 换成用户名,[Service] 下增加 User=root
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=root

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target



# 让服务文件修改生效
systemctl daemon-reload

# 启动服务
systemctl start vncserver@:1
# 设为开机启动
systemctl enable vncserver@:1

# 查看服务端口,用于客户端连接地址
netstat -lnpt|grep Xvnc

# 放行连接端口,每个用户端口不同。也可直接关闭防火墙
firewall-cmd --add-port=5901/tcp --permanent
firewall-cmd --reload