Category: 服务器

九月 20th, 2018 by lanxinxichen@126.com

前段时间需要做定时备份数据,考虑到因为数据备份周期可能比较长,害怕并行任务可能导致重复备份,浪费带宽。最开始想到的是quartz not repeat,但是引入这个就太麻烦了,折中想到了采用flock判断进程是否正在进行中,如果没有启动就重新启动一次。

flock + crontab

* * * * * flock -xn /tmp/flock.lock -c “启动程序。”

如果有多个不同的程序,需要修改/tmp/flock.lock输出到不同的位置。

程序解释:每分钟检测一次,如果目标进程正在启动(文件独占锁锁正在被占用),则直接返回,如果检测到程序没有启动(文件锁没有占用),则启动一次程序。

这样就完成了一个简单的守护进程功能,守护检测间隔是1分钟/次,对实时性要求不是那么高的话足矣。

 

Posted in 服务器 Tagged with: ,

八月 27th, 2018 by lanxinxichen@126.com

安装

1. 从官方网站下载Percona XtraBackup,依赖环境rsync perl-DBD-Mysql libev,使用yum源安装以上依赖,高版本的mysql可能还需要mysql-community-libs-compat适配支持.

2. 从github上下载autoxtrabackup脚本

定期备份

利用autoxtrabackup配置一定的参数可以实现定期增量备份.

backupDir=/home/database_bak 备份路径

hoursBeforeFull=240 全量备份间隔时间

mysqlUser=root 本地数据库备份采用用户名

mysqlPwd=root 本地数据库备份采用密码

compression=false 备份是否压缩

compressThreads=8 压缩线程

keepDays=30 备份持有时间

sendEmail=never 备份完成是否发邮件

emailAddress=

配置好参数之后添加到crontab任务调度中(每天晚上23点备份数据库).

00 23 * * * /home/software/autoxtrabackup/autoxtrabackup.sh

备份生成的路径如下:

/home/database_bak/

├── 2018-08-24_11-27-36_full

├── 2018-08-24_13-23-51_incr

├── 2018-08-24_23-40-01_incr

├── 2018-08-25_23-40-01_incr

└── 2018-08-26_23-40-01_incr

还原

注意: 如果要还原数据, 首先要先备份已经备份的数据, 特别是全量数据.

autoxtrabackup的备份原则是一天一个相对于全量的增量的备份, 而不是相对于上一次的增量备份的增量. 所以在看xtrabackup的文档的时候, 需要注意由于采取的备份策略不同, 还原流程也是不一样的,具体对比可以看扩展内容.

根据增量备份数据还原数据库流程, 假设我需要还原2018-08-26的数据库数据

1. 找到最后一次的完整备份

innobackupex –apply-log –redo-only /home/database_bak/2018-08-24_11-27-36_full/

2. 找到2018-08-26的增量备份

innobackupex –apply-log /home/database_bak/2018-08-24_11-27-36_full/ –incremental-dir=/home/database_bak/2018-08-26_23-40-01_incr/

3. 准备数据

innobackupex –apply-log /home/database_bak/2018-08-24_11-27-36_full/

4. 回拷数据

innobackupex –copy-back /home/database_bak/2018-08-24_11-27-36_full/

5. 更改文件权限

chown –R mysql:mysql

6. 启动mysql服务

server mysqld start

扩展

对比标准增量备份和autoxtrabackup增量备份

官方推荐的使用办法是创建一个原始的增量备份, 第一次增量备份是针对全量备份, 第二次备份是针对第一次增量备份的增量备份, 同理第三次是针对第二次的增量备份.

而autoxtrabackup采用的是每次都针对原始的全量备份的增量备份.

二者在还原的时候自然也不一样, 标准的备份需要把增量一次一次的还原进去, 这样比较灵活. autoxtrabackup则增加实用, 需要还原的时候只需要找到全量备份,并且拿对应日期的增量备份, 即可还原到全部数据, 当然中间日期的数据就会有冗余.

使用环境就各自根据自己的环境确定吧, 如果每天新增数据比较多, 就采用官方的标准备份, 如果不是很多, 可以接受冗余数据, 并且为了方便的话可以采用autoxtrabackup脚本进行备份.

Posted in 服务器 Tagged with: ,

十月 27th, 2016 by lanxinxichen@126.com

听说windows 10内置了linux子系统,得知这个消息的时候也是十分激动。今天按照网上给的教程操作了一番。操作过程中有遇到几个问题,简单补充一下。

1. 给内置系统Ubuntu更换apt-get更新源

由于众所周知的原因,国内访问一些国外更新源的时候经常性的网速比较慢或者根本访问不了。我在开始摆弄一台linux的服务器的时候时候常常第一件事做的就是切换更新源。以前没用过Ubuntu,今天用的时候才发现它默认的安装工具是apt-get,而不是yum,不过思路都是一样的。把源的内容给更换了就行了。

a. 备份保存之前的源列表

sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak  #备份
sudo vi /etc/apt/sources.list  # 编辑源

我采用的是aliyun的源,当然你也可以使用国内高校或者网易搜狐的。

阿里云源

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

把以上内容复制粘贴到sources.list 文件里面,保存。

然后更新

sudo apt-get update  # 更新列表

参考:https://www.yurendu.com/code/16.html

2. 解决sudo: unable to resolve host  XXX  no tty present and no askpass program specified 问题

当我使用sudo命令的时候报错

sudo:unable to resolve host XXX
sudo:no tty present and no askpass program specified

截图如下:

qq%e5%9b%be%e7%89%8720161027213429

我找了好久没找到怎么解决的,最后还是在stackoverflow上面找到了,只有四个人点赞的答案。

sudo -S true

回答的人也说自己是一脸懵逼,虽然不知道为什么能解决,但是能解决问题。

我查了一下手册,发现sodu -S 的意思是重新输入密码。

虽然不知道到底怎么导致的这个问题,但是按照提示重新输入密码之后顺利解决了。

对了还有后续操作,去掉sudo的警告。

先查询自己的主机名,通过以下命令查询:

cat /etc/hostname

比如我的主机名是DESTOP-XXX, 那我需要把这个主机名加入到hosts中。

sudo vi /etc/hosts

插入一行:

127.0.0.1 <span>DESTOP-XXX  # 自己的主机名 </span>

保存。

解决方案来自:http://stackoverflow.com/questions/21659637/how-to-fix-sudo-no-tty-present-and-no-askpass-program-specified-error

    

至于如何开启这个系统,我就不详细详细介绍了,附上参考链接:http://www.cnblogs.com/leehavin/p/5751762.html

吐槽: KindEditor for WordPress 兼容性不好。

Posted in 服务器 Tagged with: , ,

六月 19th, 2016 by lanxinxichen@126.com

互联网的发展如此迅速,从功能机到满大街的智能机只是短短几年时光。11-12年室友买诺基亚N97的时候,手机上带的WIFI功能还无用武之地,而现在,连老家都随时随地被无线覆盖了。互联网的东西总是发展得太快太快,以至于大众的思维都还没有跟上,就已经被时代推着前进了。比如说智能手机的安全,家庭路由器的安全,有95%的人不会关心到这个问题的,尽管媒体在一边不断的耸人听闻。

一、攻击篇

通常当你在浏览器中输入“wifi 破解”的时候,跑不掉的总会有这么几个词,BT5、奶瓶(beini)、CDLinux、xiaopan,至于什么万能钥匙,这种都不是破解,只是别人分享的wifi被发布在了网上。我先后测试了奶瓶,CDLinux,xiaopan,只不过由于网卡的原因,最终用的CDLinux作为工具的。

以上工具都是简化的Linux系统,网上很多教程都会让制作U盘启动,把系统烧录到U盘中,我自己是觉得如果能用虚拟机的时候就坚决不用U盘,毕竟一边工作一篇跑破解工具还是要比独占系统方便得多。

如果你没有外置网卡,以下教程不适合你。

简单介绍一下遇到的几个坑:

1. U盘烧录CDLinux并不是都能成功的,即使是使用unetbootin或者UltraISO再或者二者结合。beini,xiaopan都可以使用UltraISO制作启动盘直接启动起来,而CDLinux不能。(我自己是尝试了几十遍,一点儿不夸张,各种折腾,你们可以自己尝试一下。)

2. 选用虚拟机的时候不要用VMware ,要用VirtualBox,因为VMware不能添加外置网卡,而VirtualBox可以挂载USB网卡。

3. 如果需要保存破解进度,就一定要支持FTP。如果支持FTP就一定要配置好虚拟机的有线网卡,推荐使用host-only。

其实用虚拟机,安装CDLinux就非常简单了,只需要在光驱上挂载好ISO镜像文件就可以了。

挂载镜像文件

简单的配置好网络之后,添加USB设备挂载,插入你的USB网卡,然后选择对应的网卡。

USB网卡设备

启动虚拟机就能看到虚拟机的运行界面了。

载入完成,CDLinux主界面。

VirtualBox_cdlinux_19_06_2016_20_50_38

 

 

先查看你的有线连接是否正常,可以直接打开FTP服务去查看一下。

VirtualBox_cdlinux_19_06_2016_20_55_39

如果你的网卡列表为空,而且你想保存破解进度,请及时关闭虚拟机,检测一下虚拟机网络设置是否正常。正行情况下FTP启动是这样的。

ftp-start

不要点OK,OK是关闭FTP服务的。

使用FTP客户端工具尝试连接一下自己的虚拟机,确保没有问题再进行破解。破解其实是一个漫长的工作的,不能保证多少个小时破解完成的。我自己尝试的两个速度都还好,看人品。

双击minidwep-gtk工具,如果没有无线网卡或者无线网卡不识别,无线网卡挂载失败都会提示没有网卡的,程序无法执行。

VirtualBox_cdlinux_19_06_2016_21_06_20

 

到这一步,基本上就跟其他破解教程接上了,我也就不具体讲了。一旦开始破解后,你就可以通过FTP工具在/usr/local/etc/reaver目录下看到MAC地址.wpc文件,如果先保存进度就在程序跑pin界面Ctrl+C结束程序,并把这个文件拷贝到你的电脑上保存下来,下次跑pin之前把这个文件依然放置在这个目录下就好了。

二、防守篇

有攻击就有防守,攻击哪里防守哪里。

以上提到的几个工具都是主要是跑pin的,跑pin的要求就是路由器支持WPS,老式的路由器会默认开启这个的,现在的很多就不会开启了。如果发现路由器的WPS是开启的,先把这个给关闭了,这能保证大部分人没有了破解欲望。

如果不开启WPS不能跑pin,破解者还是会选择跑字典的。虽然字典不是百分比可行的,但是同样面临这被破解的威胁。这时候可以选择开启路由器的MAC地址过滤功能,即便是知道了密码,也同样不能使用你家WIFI。(MAC地址过滤操作略麻烦,如果经常有客人来就还不够折腾的)

如果MAC地址过滤实在是搞不懂或者嫌太麻烦,干脆就设置一个复杂的WIFI密码吧。

附上一个链接,无线路由器被蹭网后,有被黑的风险吗? 高票回答者的问题确实存在,现实中能做到这一地步的太少了,以上几点对于普通的防止WIFI被破解足矣。

 

介绍的还是太简单了,主要目的是帮别人少绕一点弯路,少踩一点儿坑。

Posted in 服务器 Tagged with: , ,

四月 25th, 2016 by lanxinxichen@126.com

apache-tomcat

我之前的技术方向是PHP,现在是做java,暂且不提两门语言谁优谁劣,我就是感觉什么方便就用什么,适合用什么就用什么.现在做的NLP项目是基于java的web项目,想要在PHP的官网上面挂出来,方法有很多,比如:后端json API转化;无视端口的不一样,前端直接jsonp,当然最简单的办法就是今天提到的apache跟tomcat的整合.博主本身只是刚刚学会了,过程太顺利了,反而害怕以后会不会有什么隐患.遇到问题,以后继续更新在这里.

由于是tomcat跟apache的整合,那我就默认环境中已经有了这两个服务器软件,单纯运行的服务器配置就不再讲解了,只着重讲整合中需要做的工作.

首先打开apache的配置文件:http.conf
在http.conf中打开模块支持:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

如果在你的Apache/modules路径下没有这两个模块,请从我提供的百度云盘上面下载.百度云盘-php-apache-module,我这一步配置走的很顺,如果做完这一步apache启动不起来,就自己找匹配的模块吧.我用的集成环境,没有花时间在这个上面折腾.

然后配置转发请求到tomcat.

在http.conf中引入一个额外的配置文件httpd-proxy.conf,引入方式:Include conf/extra/httpd-proxy.conf,注意路径跟你放置的文件匹配起来.在配置文件中写入你要转发的请求.比如我现在的配置是:
ProxyPass /java/ ajp://127.0.0.1:8009/java/
ProxyPassReverse /java/ ajp://127.0.0.1:8009/java/

这个配置文件的意思是当我收到/java/的请求的时候通过ajp协议转发到ajp://127.0.0.1:8009/java/的URL请求中,其他的就没有什么可玩的了.具体的ProxyPass和ProxyPassReverse使用可以参看这里Apache配置中的ProxyPass 和 ProxyPassReverse .

总结以下:其实来讲这些东西思路都是一样的,就是代理的思想,我们平时遇到的负载均衡,cname请求转发,fq软件都是这个道理,只不过在服务器层间的转发或者封装了的转发要省很多事.需要注意的是路径的映射,从apache中配置的路径转发到tomcat的路径的时候需要对应起来,如果有同名的注意会不会覆盖请求.

参考文章:

Tomcat: Connector中HTTP与AJP差别与整合 – arun_yh – 博客园

整合apache和tomcat构建Web服务器 – iTech – 博客园

Posted in Java, PHP, 服务器 Tagged with: , , ,

四月 7th, 2016 by lanxinxichen@126.com

小公司小项目里面,就需要各种技能,所以我既要当码农,又要当运维.然而今天遇到的这个问题却是本地测试正常,到服务器上却不执行,其实还是代码的原因,当然这是后话了.今天主要讲的是,当我实在是没有办法还原服务器的环境,并且不知道错误在什么地方的时候,我们需要亲自去服务器上看一看,由此引出今天的主角–VNC,通俗的讲,是linux 的远程桌面.

VNC百度百科介绍:http://baike.baidu.com/item/VNC

第一次知道VNC还是刚刚玩弄树莓派的时候,十分方便,但是作为linux的爱好者,其实更加钟爱的是终端命令行页面,所以用过一次就在没有用武之地了.

安装

yum groupinstall "GNOME Desktop Environment"(CentOS 5.x安装GNOME桌面环境)
yum groupinstall "X Window System" "Desktop Platform" Desktop (CentOS 6.x安装GNOME桌面环境)
yum groupinstall Xfce(CentOS安装Xfce桌面环境,可选) 
yum install vnc-server vnc* (CentOS 5.x里) 
yum install tigervnc-server tigervnc (CentOS 6.x里)

由于我在安装linux的时候已经默认安装了GNOME,所以上面的GNOME没有测试,直接拷贝人家的拿过来的.

配置

1. 初始化

安装完成之后,先使用vncserver初始化一下配置文件.同时配置一下远程访问时候的密码.

2. 访问桌面的显示设置

vim /etc/sysconfig/vncservers

在最后两行的位置上取消注释,修改成如下内容

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768 -alwaysshared -depth 24"

 
说明:
1、-alwaysshared表示同一个显示端口允许多用户同时登录 -depth代为色深,参数有8、16、24、32;
2、这里的“用户名”是指linux系统用户的名称;
3、上面三行中第一行是设定可以使用VNC服务器的帐号,可以设定多个,但中间要用空格隔开。注意前面的数字“1”或是“2”,当你要从其它电脑来VNC服务器时,就需要用IP:1这种方法,而不能直接用IP。如假定你的VNC服务器IP是192.168.1.100,那想进入VNC服务器,并以peter用户登录时,需要在vncviewer里输入IP的地方输入:192.168.1.100:1,如果是root,那就是192.168.1.100:2;
4、下面两行[1][2]最好与上面那个相对应,后面的800X600可以换成你电脑支持的分辨率。注意中间的”x”不是“*”,而是小写字母”x”。

使用

使用MobaXerm或者其他的支持VNC访问的软件,

VNC-server

一定要主要只用ip:windowsNo 的这种形式访问,直接用IP是访问不到的,当然这里的windowsNo是跟你设置的是一样的.

windows-view

 

这样就能直接通过VNC访问到linux界面了.

答疑

直接访问是连接不上的,请检查以下防火墙配置,最简单的办法是先把防火墙stop掉,操作完再打开.

 

参考文章:

http://www.ha97.com/4634.html

http://www.blogjava.net/icewee/archive/2013/02/22/395594.html

https://www.unixmen.com/install-vnc-server-centos-7/  在centos7 上安装vnc,如果使用root,请一定看好root对应的文件路径

Posted in 服务器 Tagged with: , , ,

同步设置
三月 21st, 2016 by lanxinxichen@126.com

在当前的公司的项目中,爬虫任务需要多台服务器支持,讨论部署方案的时候,商量出来的结果就是FTP上传管理代码.刚开始听到这个决定的时候,我几乎是崩溃着拒绝的.然并卵,所以还是接受了这样一个极其愚蠢的方案.这篇文章就是讲的如何使用SecureCRTSecure做服务器和代码的管理.

当然我相信一个svn或者git能更好的解决代码的同步问题.

1.多服务器发布指令(SSH工具)

主操作界面

 

选择顶层菜单中的查看,勾选中”交互窗口”,然后在终端窗口中出现一个交互窗口.

 

打开命令窗口

 

在最底层的交互窗口中,右键选中”发送交互到所有会话”

 

 

切换所有会话模式
这个时候,在这个交互窗口中输入指令,然后回车就可以同时在打开的所有的会话中,同时执行交互窗口中的指令.

2.简单的代码同步工具(FTP工具)

在顶层菜单中选中工具,工具里面有同步,点开同步.

快速同步选项

同步列表

 

选择添加操作,然后打开如下窗口.

同步设置

在该窗口中输入本地路径,选择一个远程会话,然后输入服务要同步的路径.方向可以根据自己的需要来选择,我是为了把我本地的代码同步到服务器,那么我就选择镜像本地.过滤还没有搞懂,似乎没有生效,这个我再研究研究.

记住你设置的同步会话的名字,然后在这个软件的配置路径\Data\Settings\Config\SynchronizeDB中找到刚刚设置的同步配置文件,可以拷贝几份,然后修改里面的服务器内容

S:"Task[0].Name"=Task 1
D:"Task[0].Type"=00000000
D:"Task[0].MasterOverwrites"=00000001
S:"Task[0].Source[0].Session"=
S:"Task[0].Source[0].Path"=D:\tomcat\webapps\ljyq
D:"Task[0].Source[0].Recurse"=00000001
S:"Task[0].Target[0].Session"=192.168.10.247
S:"Task[0].Target[0].Path"=/usr/tomcat/webapps/ljyq
S:"Last Sync Time V2"=2016:03:21:05:26:46:996
S:"Filter"=WEB-INF

这时候再点击工具里面的同步就能看到你拷贝的那几份同步配置.之后就是同步了,同步完之后,在同步列表中找到下图所示的文件,然后右键,自己决定上传还是不上传. 同步处理异常

总的开说,使用了最简单的办法达到我的目的,特意写下博文,以供其他人参考.

Posted in 服务器 Tagged with: , , , , ,

三月 14th, 2016 by lanxinxichen@126.com

第一步:安装操作系统

这里我选择的是阿里云提供的镜像站点http://mirrors.aliyun.com/,选择了centos6.7的操作系统,因为centos7之后很多的指令不一样了,所以还是不敢冒险尝试的.

第二步:设置IP

附加: 如果主机名不是localhost,请在/etc/hosts 的127.0.0.1 后面加上主机名(查看主机名cat /etc/sysconfig/network  中HOSTNAME=****)

IP的设置通常情况下是需要谨慎的,一旦设置错误了,就可能网络直接断开,只能强行重启物理机了.

如果物理机本身就在身边而且有图形界面的话,可以使用linux的界面操作,怎样都不会出问题,如果物理机不在身边,则需要使用指令了.
vi /etc/sysconfig/network-scripts/ifcfg-eth0
在linux中有两个网卡,一个是eth0,一个是lo,lo是回环网卡.127.0.0.1就是走的这个网卡.

默认的网络应该是DHCP(动态分配),因为我是用的是图形化界面直接设置的,所以下图仅供参考

QQ截图20160314102845

修改之后使用ifconfig查看以下是否是生效,不生效则重启.不过因为我是采用的界面设置的,所以还是不要参考我的配置.

第三步:更新yum镜像源

备份CentOS-Base.repo

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载新的CentOS-Base.repo

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

更新缓存

yum makecache

第四步:安装JDK

我懒,用的是rpm的安装.为了节省时间.

先使用java -version 查看以下有没有java环境,我的是有的,1.7版本的,所以我需要把这个版本的给替换成我需要的1.8的
[root@admin ~]# rpm -qa | grep java
tzdata-java-2012c-1.el7.noarch
java-1.6.0-openjdk-1.7.0.0-1.45.1.11.1.el6.x86_64

卸载之前的JDK
[root@admin ~]# rpm -e --nodeps tzdata-java-2012c-1.el6.noarch
[root@admin ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64
使用FTP上传工具上传你的JDK文件包,然后使用以下指令安装:
[root@admin local]# rpm -ivh jdk-8-linux-i386.rpm

JDK默认安装在/usr/java中。

配置环境变量

vi + /etc/profile

修改系统环境变量文件

JAVA_HOME=/usr/java/jdk全名
JRE_HOME=/usr/java/jdk全名/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

向文件里面追加以下内容:

使修改生效

[root@admin local]# source /etc/profile   //使修改立即生效

第五步:安装tomcat

使用FTP上传工具把tomcat的tar.gz安装包上传,使用以下指令解压

tar -zxvf  tomcatXXXX.tar.gz

因为tomcat是绿色版,所以直接解压,然后移动到/usr/tomcat 目录就行了

第六步:把tomcat配置到service上面

把以下文本放置到/etc/init.d/tomcat里面.

#!/bin/bash
# /etc/rc.d/init.d/tomcat
# init script for tomcat precesses
# processname: tomcat
# description: tomcat is a j2se server
# chkconfig: 2345 86 16
# description: Start up the Tomcat servlet engine.

if [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
else
echo -e "\atomcat: unable to locate functions lib. Cannot continue."
exit -1
fi
RETVAL=$?
CATALINA_HOME="/usr/tomcat" #tomcat安装目录,你安装在什么目录下就复制什么目录
case "$1" in
start)
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
$CATALINA_HOME/bin/startup.sh
fi
;;
stop)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
$CATALINA_HOME/bin/shutdown.sh
fi
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
;;
esac
exit $RETVAL

Linux

给脚本加上权限chmod +x /etc/init.d/tomcat

然后测试service tomcat (start | stop)是否能够成功,另外还可以使用chkconfig –add tomcat 添加到启动项

第七步:防火墙

添加防火墙开放端口

#/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT
#/sbin/iptables -I INPUT -p tcp –dport 8080 -j ACCEPT

保存防火墙端口

/etc/rc.d/init.d/iptables save

重启防火墙

/etc/init.d/iptables restart

 

参考资料:

http://xtgly.blog.51cto.com/3159418/1595977

http://www.cnblogs.com/zhoulf/archive/2013/02/04/2891608.html

http://blog.sina.com.cn/s/blog_3eba8f1c0100tsox.html

http://www.cnblogs.com/marsprj/archive/2013/02/08/2893519.html  (postgresql)

http://www.cnblogs.com/licheng/archive/2008/01/23/1050116.html

Posted in 服务器 Tagged with: , , ,

十二月 17th, 2015 by lanxinxichen@126.com

最近遇到一个坑,跳出来了,特树立一块牌子,以防止其他人掉入其中.

我的情况背景:

我使用bat封装了python执行.py文件的操作程序,在我的py文件中有一个写日志的功能,然而当我部署后,发现日志文件并没有生成.

 

首先,我怀疑的是权限不足,然后我把所有的权限都改成最高,包括使用administrator权限去执行,依然不行,没有生成日志文件.

于是这件事就搁置了,后来再想起来的时候,就有搜索,搜到了解决问题灵感来源的解决方案,然后我把python.exe执行文件给填写到起始于的输入框里面,结果发现计划任务报错,说目录无效.遂改成python.exe所处的目录,然后一开始发现项目目录里面还是没有生成文件,无意中发现python目录下面有我生成的log文件,

所以,这个起始于的目录其实就是指定的项目运行所处的根目录环境,这样的话,那我就把这个选项修改成我真实项目的执行环境的目录,运行发现,果然生成了日志文件.

到这里还没有结束.我记得cywin的命令执行默认指向的是C:/windows/system32/ ,我进入该目录,果然发现了我丢失的日志文件,高兴的拷出来到真实的运行目录里面去.

另外还需要测试的内容是:,如果采用绝对路径的话,文件存储的路径就跟执行路径无关了,猜测应该如此,以后有心情再试.

立牌在此,往后来者不要摔进去了.

感谢:

解决问题灵感来源

博客园关于计划任务详解

Posted in 服务器 Tagged with: , ,