linux系统修改CST时区

=================================================
[root@DC08R17DS19 ~]# date -R
Mon Feb 8 2016 08:35:37 +0800
[root@DC08R17DS19 ~]# cat /etc/sysconfig/clock
# The time zone of the system is defined by the contents of /etc/localtime.
# This file is only for evaluation by system-config-date, do not rely on its
# contents elsewhere.
ZONE=”Asia/Shanghai”
[root@DC08R17DS19 ~]#
=================================================
修改日期:
时间设定成2016年5月10日的命令如下:
#date -s 05/10/2016
修改时间:
将系统时间设定成上午10点18分0秒的命令如下。
#date -s 10:18:00
=================================================
linux系统修改CST时区:
=================================================
初始时间:2012年 09月 14日 星期五 18:15:33 EDT
[root@test ~]# mv /etc/localtime /etc/localtime.bak
[root@test ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@test ~]# date
修改后的时间:
2012年 09月 15日 星期六 18:25:00 CST
=================================================
修改命令:tzselect
保存:hwclock -w
=================================================
系统时间变化原因分析

Linux的时间有两种,一是系统时间,另外是硬件时间(BIOS时间)。

系统每次启动时会读出BIOS时间,将之赋给系统时间。之后系统时间将独立运行,而BIOS时间不会变化。

在BIOS时间中,有两种表示形式。一种是以localtime表示的,一种是以UTC表示的。具体查看的方式可以通过hwclock –debug,该命令可以输出当前硬件时间的表示形式。

下面例举各种情况下系统时间的变化:

1.当hwclock设定为localtime,/etc/sysconf/clock 中的 UTC=true时,重启后系统时间后相对于BIOS时间被提前8个小时。

2.当hwclock设定为localtime,/etc/sysconf/clock中的 UTC=false时,重启后系统时间相对于BIOS时间没有变化

3.当hwclock设定为UTC,/etc/sysconf/clock 中的 UTC=true时,重启后系统时间后相对于BIOS时间无变化

4.当hwclock设定为UTC,/etc/sysconf/clock 中的 UTC=false时,重启后系统时间后相对于BIOS时间被推后8个小时。

如下图所示:

/etc/sysconf/clock中UTC=true

/etc/sysconf/clock中UTC=false

硬件时间 localtime

重启后系统时间后相对于BIOS时间被提前8个小时

系统时间无变化

硬件时间 UTC

系统时间无变化

重启后系统时间后相对于BIOS时间被推后8个小时

可见,当BIOS时间设置的类型和 /etc/sysconf/clock中的设置不一致时,就会导致系统启动时的系统时间错误。

如果有脚本实现时间同步,但是系统启动之后运行的。虽然时间同步可以将系统时间同步到正确时间,但是由于之前的系统时间错误设定,将会出现一个错误的时间间隔,这个时间间隔可能会对依赖系统时间的程序产生影响。

对策:出现这种问题的根本原因是硬件时间的类型和 /etc/sysconf/clock中的设置不一致。所以我们将在时间同步脚本中增加对硬件时间的同步,这样可以解决这种问题。

注:

UTC时间:世界协调时间(Universal Time Coordinated,UTC) ,也就是0时区的时间

CST时间:CST China Standard Time UTC+8:00 中国沿海时间(北京时间),这是我们所属时区的localtime。

2.关于时区的设置:

为保证时间的正确,应该把时区设置正确。设置正确仅是为了使得时间更好理解和其他方面的维护。

设置方法:

1. 手动设置时区:

例如:设置东八区的时间

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

编辑/etc/sysconfig/clock中 ZONE=”Asia/Shanghai”

2. 使用图形化命令设置

system-config-date (大部分情况仅限于RedHat和CentOS)或者使用 tzselect,按照命令提示进行即可。
====================================================================

使用XenCenter开设单IP多个虚拟机上网

今天终于在一台服务器上让主机商装上了XenServer,自己装上XenCenter想开几个小鸡玩玩,结果各种问题,简要记录,以便查询!

像连接服务器,汉化、包括用模板建小鸡、或者去下载小鸡模板都省略,重点是记录下自己怎么让单IP可以多个小鸡上网,网上又很多资料,按那些输入后各种错误。

折腾许久,所以还是记录一下。

首先增加一个虚拟网卡
选中服务器-点击“网络连接”→“Add Network(添加网络)” → “External Network(外部网络)”→输入网卡的名称 →选择NIC0(注意这里要选能连接外网的网卡),建议将“自动将此网络添加到新虚拟机”,我将新添加的网络命名为“newRoute”.添加保存既可以

其次增加IP
在网络连接下方的 IP配置中,点击“Config(配置)”→ 点“添加ip地址(D)”,选择之前添加的网络“newRoute”,设置与虚拟机同网段内网IP地址,也就是之后虚拟机要设置的网关地址。我这里小鸡准备用192.168.10.0/24这个网段,所以我设置的IP为192.168.10.1,子网掩码为255.255.255.0,网关为空

然后进控制台或者ssh登陆root账号和密码,查看IP是否正常(ifconfig -a)

第四,在设置正常后,开始配置NAT规则。
首先清除防火墙的默认策略
#iptables -F
开启转发支持,默认是关闭的,也可以事先查看一下。
#more /proc/sys/net/ipv4/ip_forward 如果直接编辑,很多时候保存不了。请直接使用echo
#echo 1 > /proc/sys/net/ipv4/ip_forward
然后配置iptables,让事先想好的小鸡网段192.168.10.0网段的虚拟机可以上网。
#iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o xenbr0 -j MASQUERADE 如果复制的不行,请手动打一边,我就是复制进去后无效,手动输入后就好了。
然后保存防火墙配置,避免重启主机后规则失效
#/etc/init.d/iptables save

然后编辑 /etc/sysctl.conf文件将net.ipv4.ip_forward 项设置为 1,开启转发支持,不受重启影响
#vi /etc/sysctl.conf
然后再给小鸡手动分配IP就可以上网啦。如果想小鸡可以远程桌面、SSH这些,再加一些远程端口转发,让外网直接用主机公网IP连接到虚拟机。
#iptables -t nat -A PREROUTING -p tcp –dport 3390 -j DNAT –to-destination 192.168.10.100:3389
这个命令的dport和to前面的两个-在复制的时候很容易就变成一个长的—,到时候会iptables的错误
“-bash: iptables -t -nat -A PREROUTING -p tcp -dport 3390 -j DNAT –to-destination 192.168.10.100:3389: command not found”。如果再修改了,请保存重启查看。
#/etc/init.d/iptables save
#service iptables restart
#iptables -t nat -L

debian下cron的使用方法和常见问题

今天在给服务器配置自动备份脚本,对于配置使用Cron,发现设置后,好像没有自动运行,查阅了很多资料,发现问题是在时区上。整理了一下, 一般cron都不用安装,系统都有事有的。
一、常用的cron命令:
启动/etc/init.d/crond start
关闭/etc/init.d/crond stop
重启/etc/init.d/crond restart

有的系统可能init.d目录下没有crond,只有cron,其实也一样,只不过把crond换为cron:
启动/etc/init.d/cron start
关闭/etc/init.d/cron stop
重启/etc/init.d/cron restart
判断crond 是否在运行:pgrep crond或者pgrep cron,如果有在运行则返回进程号。
杀掉crond进程:pkill crond或者pkill cron,此法可用在关闭或重启不了cron的时候。
配置cron定时任务:crontab -e,配置文件路径一般为/var/spool/cron/crontabs/root
这个是root用户的配置文件,其它用户是对应的用户名命名的文件,所以配置定时任务也可以vi /var/spool/cron/crontabs/root
后面会讲如何添加定时任务。
配置指定用户的配置文件
crontab -u<用户名称>
查看配置文件:crontab –l
二、下面讲如何配置定时任务
基本格式 :
* * * * * command
几个星号分别为:分 时 日 月 周,最后是要执行的命令。
分:0~59
时:0~23
日:1~31
月:1~12
周:0~6(0表示星期天)
配置文件的一些例子:
0 3 * * * /root/test.sh 每天凌晨3点执行test.sh文件
* 23-7/1 * * * /root/lnmp restart 晚上11点到早上7点之间,每隔一小时重启lnmp套件
*/30 * * * * /usr/sbin/ntpdate 每半小时同步一下时间
0 23 * * 6 /lnmp restart 每星期六的11 : 00 pm重启重启lnmp套件。
* */1 * * * /usr/bin/mutt -s “hello” [email protected]

Linux怎么查找大文件或目录

   最近服务器遇到了各种问题,不断发现问题,不断解决问题,在这里记录一下。在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整理了一下在Linux系统中如何查找大文件或文件夹的方法。

 

1: 如何查找大文件?

其实很多时候,你需要了解当前系统下有哪些大文件,比如文件大小超过100M或1G(阀值视具体情况而定)。那么如何把这些大文件搜索出来呢?例如我要搜索当前目录下,超过800M大小的文件

find . -type f -size +100M

如上命令所示,我们仅仅能看到超过100M大小的文件的文件名称,但是对文件的信息(例如,文件大小、文件属性)一无所知,那么能否更详细显示一些文件属性或信息呢,当然可以,如下所示 继续阅读Linux怎么查找大文件或目录

Linux 服务器被 DDoS / CC 时应急的封 IP 方法

最近无聊的人太多了,一个腾讯云,没有挂几个小页面,居然一直有人再CC,再带宽全部占满,导致页面根本无法打开,查询了一番,因为攻击比较小,决定使用 iptables 来手动封禁这些攻击者的IP。

如果攻击比较大时,有时我们根本无法响应过来,iptables 基本也就无能为力了,那我们就只能与机房联系让他们想想办法了。

对于少量攻击处理的步骤应该是:获取IP –> 封IP

获取攻击者 IP

通过 netstat 获取

如果攻击者攻击的是你的 Web 服务的话,默认是80端口,我们就可以使用下面的代码!
继续阅读Linux 服务器被 DDoS / CC 时应急的封 IP 方法

WordPress上传文件提示“无法建立目录uploads”的解决方法

最近把朋友的博客从虚拟主机换到了VPS,顺带将WordPress升级到了3.6版本。一切基本顺利,就是在后台上传文件或图片、安装风格时一直提示“无法建立目录uploads/2014/05。有没有上级目录的写权限?”错误,尝试过修改相关文件目录权限为777仍然无解。折腾再三,其实解决方法很简单:

1、将wp-content目录的权限设置为755;

2、进入“WordPress后台—设置—多媒体”将默认上传路径修改为wp-content/uploads即可。

做完这步之后,建议再进入PHPMyAdmin数据库,检查wp_options表里的upload_path键值路径是否为wp-content/uploads。

以上就是本人博客关于WordPress上传文件或图片时提示“无法建立目录uploads,有没有上级目录的写权限”的解决方法,如果您有遇到同样的问题,在修改目录权限无效的情况下欢迎尝试。

解决LNMP编辑WordPress主题scandir()错误方法

在帮助搬家wordpress博客网站到搭建好的lnmp环境VPS中的时候,一切都比较完好,但是在编辑wordpress主题的时候看到有错误,提示有类似下面的(解决好之后我忘记截图)。

Warning: scandir() has been disabled for security reasons in …
Warning: Invalid argument supplied for foreach() in …
Warning: scandir() has been disabled for security reasons in …
Warning: Invalid argument supplied for foreach() in …

省略号的部分是我们网站主题文件所在的错误页面和行数,因为我忘记截图和复制,只能从网上找到类似的提示。

解决方法也是比较简单的,这是由于我们lnmp环境下的php.ini文件scandir()函数问题,我们只需要去掉这个函数就可以了。我们可以通过VI编辑 /usr/local/php/etc/php.ini文件中,找到 disable_functions 后面的 scandir删除掉这个函数,大概在210行。

最后, /etc/init.d/php-fpm restart 重启php-fpm就可以了。