分类目录归档:linux

Windows使用Rsync备份Linux文件夹

最近有需求把vps上某个备份文件夹自动同步到别的地方。虽然另一台linux服务器也做了同步,但终究文件本地没有备份心里不踏实,于是考虑自己的电脑在每天的第一次开机时执行一次同步。

rsync:

方案一:cwRsync

方案二:cygwin+源码编译

以上两种方法均可通过搜索引擎找到详细步骤,不详述

每天自动执行

最简单的方式是计划任务,不过我这里并没有用这种方法,而是将备份脚本加入到开机自启动中。这种方法存在一个问题,即如果一天多次开机,备份脚本会多次运行。虽然rsync并不会对服务器产生太大压力,但是服务器端备份间隔没有小于一天的,一天多次检查还是有些多余。

解决方案:

创建一个状态文件,内容为今天的日期。脚本运行后先检查该文件中的内容与今天的日期是否相同。若相同则不执行备份,若不同则执行备份,并在备份完成后将今日日期更新到脚本中。

@echo off
echo VPS自动同步到本地....
set /p a=<D:\tools\vpsRsyncDate.conf
if "%a%"== "%date%" (
  echo 今日已同步,无需再次同步
  pause
) else (
  D:
  chdir D:\cygwin64\bin
  echo 开始同步xxx
  bash --login -i -c "(RSYNC 备份命令)"
  echo 完成同步xxxx
  echo %date%> D:\tools\vpsRsyncDate.conf
  pause
)

个人邮件服务器——一、概述

前言:

大概5年以前,一个偶然的机会,看到了腾讯提供了免费的企业邮箱,只要有域名就可以申请使用。上某宝,兴冲冲买了一个.info域名,回去注册,腾讯说这个域名后缀垃圾邮件太多,不让用了,心中顿时[哔]🐶。再后来,买了至今仍在使用的flagplus.net域名,总算是用上了一个可以自己随意指定用户名的邮件系统。

时间到了2016年,开始在net.cn上大量购买看起来好玩的低价域名后缀的域名后,想着要把其中某一个准备常用的域名开通一个域名邮箱,于是注销了当时申请的一个腾讯企业邮箱(提示只能注销域名3次,心中不爽),绑定新域名,提示不支持,心中[哔]🐶。

半年后的2016年底,随着希拉里邮件门事件的爆出,便萌生了搭建自己的邮件服务器的想法。于是乎开始查资料。本来以为只需要几条apt-get就能完成,后来发现原来远远低估了搭建邮件服务器的难度。陆陆续续又拖了半年,到2017年初,才最终付诸实践。

目前邮件系统已比较稳定运行几个月了,现在整理下整个配置过程,以防自己忘记。

继续阅读

NFS 写入速度缓慢及解决

怀疑可能是由于默认挂载选项下读块过小导致的

mount -t nfs ip:/mnt/nfs /mnt/nfs_t -o nolock, rsize=1024,wsize=1024,timeo=15

相关参数:

timeo:如果超时,客户端等待的时间,以十分之一秒计算。
retrans:超时尝试的次数。
bg:后台挂载,很有用
hard:如果server端没有响应,那么客户端一直尝试挂载。
wsize:写块大小
rsize:读块大小
intr:可以中断不成功的挂载
noatime:不更新文件的inode访问时间,可以提高速度。
async:异步读写。

暂作记录,以后整理

解决Windows与Linux/Mac系统时间不一致

Windows系统把系统硬件时间当作本地时间(local time),即操作系统中显示的时间跟BIOS/EFI中显示的时间是一样的。

Linux/Mac这种类Unix系统则把硬件时间当作UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是GMT+8,则系统中显示时间是硬件时间+8

对于需要在Mac与Windows,Linux与Windows间相互切换的用户,时间差错可能会造成一些不必要的麻烦。

解决方案:让Windows系统认为硬件时钟为UTC时间

思路:修改注册表

操作:以管理员模式运行命令行窗口,并输入

Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

执行,重启后重新调整时间即可

转自自己的人人小站,原始出处不详

debian下开启.htaccess rewrite功能

1、启用rewrite模块

root身份执行:a2enmode rewrite

此时提示需要重启apache,先不管

2、修改根目录配置

方案一:vi /etc/apache2/apache2.conf
将对应目录或根目录下AllowOverride 属性修改为All
<Directory /home/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
方案二:若directory配置位于虚拟主机配置文件中,需要修改/etc/apache2/sites-enable/下对应配置文件。

3、重启服务器

root身份执行:/etc/init.d/apache2 restart 或 service apache2 restart

Debian 8 安装 zabbix 2.4.5

正常安装大家应该搜索不到这篇博客,所以我也懒得写完整的安装教程了,大家先安装网上的教程安装,出了问题的时候记得看看它。

1、安装mysql等组件(略,依赖安装可先使用apt-get install zabbix-server-mysql完成依赖库安装,如果不需要最新版本,则直接跳至第4步)
2、apt-get remove zabbix-server-mysql 卸载老版本
3、wget方式下载最新版本的zabbix-server-mysql,执行dpkg -i zabbix-server-mysql 版本号.deb完成安装。
4、尝试启动 /etc/init.d/zabbix-server start
查看状态 /etc/init.d/zabbix-server status
如果报libnetsnmp.so.15缺失,可先用find / -name “libsnmo.so*”查找新版本所在位置(当前为libnetsnmp.so.30),cd至相应路径,执行 cp libnetsnmp.so.30 libnetsnmp.so.15
5、再次尝试启动并查看状态。若无报错,执行netstat -an | grep 10051
10051 为zabbix-server默认端口。返回
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN
tcp6 0 0 :::10051 :::* LISTEN
表示启动成功,若无返回,查看log
6、cat /var/log/zabbix-server/zabbix_server.log
报错形如:[Z3001] connection to database ‘zabbix’ failed: [1045] Access denied for user ‘zabbix’@’localhost’ (using password: NO)

CentOS 中rpm相关操作

RPM命令查询已安装的包名
#rpm –ql 包名 如 rpm -ql gcc 来查看gcc的文件都安装到哪里去了
#rpm -qa | grep 包名 来查看有没有安装这个包
#rpm -qa 查看全部已经安装的包名

安装与卸载
安装:rpm -ivh *.rpm
卸载:rpm -e packgename
如果遇到依赖,无法删除,使用 rpm -e –nodeps <包的名字> 不检查依赖,直接删除rpm包
如果恰好有多个包叫同样的名字,使用 rpm -e –allmatches –nodeps <包的名字> 删除所有相同名字的包, 并忽略依赖

RPM参数
-ivh:安装显示安装进度–install–verbose–hash
-Uvh:升级软件包–Update;
-qpl:列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包

YUM相关
自动搜索最快镜像插件: yum install yum-fastestmirror
安装yum图形窗口插件: yum install yumex
查看可能批量安装的列表: yum grouplist

1 安装
yum install 全部安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group1

2 更新和升级
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 升级指定程序包package1
yum groupupdate group1 升级程序组group1

3 查找和显示
yum info package1 显示安装包信息package1
yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1
yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包

4 删除程序
yum remove &#124; erase package1 删除程序包package1
yum groupremove group1 删除程序组group1
yum deplist package1 查看程序package1依赖情况

5 清除缓存
yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers