分类目录归档:计算机/网络

JavaScript实现载入页面进度条

<form name=loading>
<p align=center> <font color="#ff0000" size="2" face="Arial">载入中,请稍等...</font><br>
<input type=text name=chart size=46 style="font-weight: bolder; color: #ff0000;">
<br>
<input type=text name=percent size=47 style="color: #ff0000;">
<script language="JavaScript">
<!-- 
var bar=0                
var line="||" 
var amount="||" 
count()                  
function count(){ 
bar=bar+2 
amount =amount + line 
document.loading.chart.value=amount         
document.loading.percent.value=bar+"%"     
if (bar<99)                
{setTimeout("count()",100);}  
else                    
{window.location.href = "http://www.sina.com.cn";} 
}
//-->
</script>
</p>
</form>

资料来源:

http://blog.csdn.net/sangliu/article/details/8718685

CentOS定时将路由器的外网IP发送到指定电子邮箱中

出于节约成本费用考虑,平时家用和小型商用的宽带都是ADSL虚拟拔号的。ADSL宽带的下载速度在4M左右时与光纤的差别不是很大,但唯一的问题就是没有固定IP,每次重新拔号都会重新获得动态的IP。这种情况下想进行远程维护服务器和网络就变得十分困难。在局域网内有Linux主机的情况下,我们可以考虑用如下的方法。

一、获得当前路由器的外网IP

curl ifconfig.me

就会获得一个路由器的IP地址。接下来,将这个IP地址通过Email发到指定的邮箱就。用 vim GetIP.sh 写一个角本,执行后,就会将外网IP发送到指定的电子邮箱中,脚本如下

 #!/bin/bash
 # Program:
 # Send Router IP of Internet to certain email# History:
 # 2014-03-08 cmzsteven First releasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin/:~/binexport PATHcurl ifconfig.me | mail -s "Router IP of Internet" changmingzhi@163.com

用命令 :wq 保存

二、定时执行

把这个脚本加到计划任务crontab中。如果你是管理员可以用

 vim /etc/crontab

加到系统的计划任务里也可以用 crontab -e 加入到用户的计划任务里。不管是加到哪里面,格式是一样的:

 1 */1 * * * root /root/GetIP.sh

上面是每小时的第一分钟执行一次,如果是每天1:01执行一次,格式为:

 1 1 */1 * * root /root/GetIP.sh

在作用“/n”的时候,如果前面还有“*”就要指定数值了,要不就是每一分钟发一次了。我之前设置为

 * */2 * * * root /root/GetIP.sh

结果就是每隔一分钟,就会收到一封邮件。3.剩下的工作就是在路由器里设置虚拟服务或者NAT转换了,这里就不过多的加以介绍了。

三、时程表的格式

f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推

原文地址:http://changmingzhi.blog.163.com/blog/static/29678048201428114710683/

Ubuntu安装VNC Server

尽管我们在大部分情况下用ssh登录Ubuntu服务器就好了,但是有时候我们的程序需要在图形界面下运行,这时我们就要用到vnc server这个软件了。在Ubuntu下安装vnc server很简单的,只要下面几步就可以了:

第一步,获取安装文件

sudo apt-get install vnc4server

第二步,修改VNC Password,不能太短

# vncpasswd

Password: ******

Verify:*****

第三步,检查防火墙,这个就不详细说明了

第四步,启动VNC server

# vncserver

第五步,通过客户端连接

地址后面加:1

本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2007-11/9252.htm

如何在linux下将本机ip发送到指定邮箱?

NOW_IP=`/sbin/ifconfig ppp0 |grep inet|awk {'print $2'}|cut -f2 -d:`
 echo $NOW_IP|mail -s "IP" your@emailaddress

如果是ADSL拨号,将以上命令加入/etc/ppp/ip-up.local文件末尾,让每次拨号后执行以上命令。

#vi /etc/ppp/ip-up.local

也可定时执行,将最上方脚本添加进计划任务conrtab中,具体设置参见CentOS定时将路由器的外网IP发送到指定电子邮箱中

Linux下邮件(mail)查收

Linux下mail使用技巧

登录LINUX系统后,经常会看到”you have mail”,却苦于不知道如何查看,相信菜鸟们都遇到过,偶在网上用“linux mail”找了很久,但大都是介绍mail服务器的,黄天总算没负有心人,在洪恩在找到一篇介绍基础的文章,不敢独享。

系统提供了用户之间通信的邮件系统,当用户打开终端注册登录时发现系统给出如下信息:
you have mail.

这时用户可通过键入mail命令读取信件:

$ mail

mail程序将逐个显示用户的信件,并依照时间顺序,显示最新的信件。每显示一段信件,mail都询问用户是否要对该信件作些处理。若用户回答d,则表示 删除信件;若仅按回车键,表示对信件不作任何改动(信件仍旧保存,下次还可读这一信件);若回答p,则要求重复显示信件;s filename表示要把信件存入所命名的文件;若回答q,表示要从mail退出。

我们在本章的第一个例子中演示了如何写一封信,作为练习,你可送信件给自己,然后键入mail读取自己发的信件,看看会有什么效果。(发信给自己是一种设置备忘录的方法)。

$mail frank 给自己写信

subject: test

This is a mail test

CRL-d

EOT

$

$mail 查看信件

“/var/spool/mail/frank:”1 message 1 new

>Nfrank@xteam.xteamlinux.comThu Mar 25 11:00 13/403 “test”

&

Message 1:

From frank Thu Mar 25 11:00:25 1999/3/25

Received: (fromfrank@localhost)

by xteam.xteamlinux.com(8.8.4/8.8.4)

id LAA05170 for frank;Thu 25 Mar 1999 11:00:25 GMT

Date: Thu,25 Mar 1999 11:00:25 GMT

From:RHS Linux User <root@newtradepowre.com>

Message-Id:<199903251142.LAA05170@xteam.xteamlinux.com>

To:frank@xteam.xteamlinux.com

Subject:test

Status:R

This is a mail test

&

mail命令还有很多其它用法,例如发送事先准备好的信件,或一次送信给若干人。还可以用其它方法送信件。

另附message的使用技巧:

当Linux系统处于多用户的情况下,有时在终端上会突然显示出下述信息:

Message from renee tty2…

并伴随出现一阵嘟嘟响声。这是用户renee想和你通话而产生的信号。若你用如下命令响应他:

$ write renee

这就建立起了你和renee的通信线路,renee在他的终端上键入的内容同时显示在你的终端上,反之你键入的内容也显示在renee的终端上。为区分终 端上哪些是你输入的,哪些是renee输入的,我们使用如下通话协议:(o)表示一段话说完,并让对方发话,(oo)代表通话结束并退出程序。

renee’s terminal: frank terminal:

[renee@xteam renee]$ write frank

$ Message from renee tty2…

$write renee

[renee@xteam renee]$Message from you tty1…

did you forget lunch? (o)

did you forgeet lunch? (o)

ten minutes (o)

ten minutes (o)

ok (oo)

ok (oo)

ctl-d

EOF

Ctl-d

EOF

[renee@xteam renee]$ $

除CTL-d键外,也可以使用DELETE退出write命令。

如果你不愿意别人干扰你的工作,可以使用mesg命令拒绝接受通话。当你向一个拒绝接收通话的用户发写命令、或者向没有注册的用户要求通话时,write命令会显示不能通话的原因。

转自:http://edu.codepub.com/2010/0413/21978.php

Linux系统下mail命令

在Linux系统下mail命令的测试

1. 最简单的一个例子:

mail -s test yangfang@fudan.edu.cn

这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并且后面的邮箱不会挡这种可能莫名奇妙的信的时候,就能收到这封信了。如果你不想被这种乱七八糟的事情干扰,后面的邮箱请使用本地帐户。

2. 第二个例子:

三种常用格式发信

mail -s test yangfang@fudan.edu.cn #第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束

echo “mail content”|mail -s test yangfang@fudan.edu.cn #第二种方法,我用的最多,可能是喜欢管道的缘故吧

mail -s test yangfang@fudan.edu.cn < file #第三种方法,以file的内容为邮件内容发信

其实你很容易发现mail从标准输入读取文件内容并发信,我也只想让你知道这一点,到此,第二个例子结束。

3. 第三个例子,带附件的邮件

如果你的系统里没有uuencode命令的话,请先安装sharutils(yum install sharutils)

uuencode 需要两个参数,第一个是你要发送的文件(们),当然这个也可以用管道来做,第二个是显示的文件名

uuencode /home/yfang/a.gif a.gif|mail -s pictest yangfang@fudan.edu.cn

tar czf – /home/yfang/ | uuencode home.tgz |mail -s pictest yangfang@fudan.edu.cn

ps: 顺便补一句,slackware下的mail好像有一个-a参数,可以直接添加附件,我没有用过。

转自:http://www.svn8.com/linux/accidence/20091016/10858.html

Ubuntu下使用动态域名

3322的更新还有更加简单的办法,连客户端都不用安装,也不用配置文件,不用知道IP。

www.3322.org网站上介绍的是用lynx(一般的Linux,BSD都自带),就可以了!
使用方法:

lynx -mime_header -auth=用户名:密码 "http://members.3322.net/dyndns/update?system=dyndns&hostname=域名"

而Ubuntu/Debian默认带的是w3m,所以要将命令改成:

w3m -no-cookie -dump http://username:password@members.3322.net/dyndns/update?system=dyndns&hostname=your_domain.f3322.org

把这条命令放在计划任务crontab(编辑用户的Crontab文件: crontab -e ,用户所建立的Crontab文件存于/var/spool/cron中,其文件名与用户名一致。 )里15分钟执行一次就能定时更新了。

*/15 * * * * w3m -no-cookie -dump 'http://username:password@members.3322.net/dyndns/update?system=dyndns&hostname=your_domain.f3322.org'>/dev/null

顺便,使用w3m查询自己公网IP的方法:

w3m -no-cookie -dump www.ip138.com|grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"

ubuntu 14.04 下成功安装gaussian 03(g03)和gaussian 09(g09)和gview及常见错误解决

以下方法对g03和g09均可行。

一、解压

首先对文件进行解压缩,我的文件名是G09.B01.LINUX_E64-930X.tgz,文件在桌面,你应填上你对应的文件目录和文件名,可用tab键补全。

tar -xvf Desktop/G09.B01.LINUX_E64-930X.tgz

注意:

1、应注意文件是否解压完全,我第一次安装的时候,exe后缀的文件不知什么原因都没有解压出来,所以安装一直失败,重新解压一次又好了;

2、尽量不要使用sudo,倘若你的Home目录权限有问题,使用加sudo解压后再将权限恢复正常,或者通过创建一个用户组。

改变文件夹权限

chmod -R u=755 g09

创建组及用户,改变文件及文件夹的组及用户

sudo groupadd g09users 创建组
sudo useradd g09 -g gaussuser 创建组用户
chgrp -R g09users  g09
chown -R g09users:gaussuser g09

将用户添加进组

usermod -G g09users gaussuser

二、安装

其实,安装的过程就是设置变量的过程。
进入主目录,Ctrl+H显示隐藏文件,打开.bashrc文件,在文件末尾加上以下内容(安装g03请把g09全部替换成g03就行了),注意你的g09的目录和你的用户名,按照以下的格式修改就行。(注意:经过我多次安装,发现修改主目录的/home/yourusername/.bashrc,用su获得超级用户的权限后,每次仍需要使用source /home/yourusername/.bashrc才能够成功设置环境变量,我发现直接修改/root/.bashrc便不用每次都需要再重新设置环境变量

#gaussian09
export g09root=/home/yourusername
GAUSS_EXEDIR=$g09root/g09/
export GAUSS_SCRDIR=/home/yourusername/g09/scratch
LD_LIBRARY_PATH=$g09root/g09/:$LD_LIBRARY_PATH
PATH=$g09root/g09/:$PATH
export g09root GAUSS_EXEDIR GAUSS_SCRDIR LD_LIBRARY_PATH PATH
source $g09root/g09/bsd/g09.profile

最后,在g09的目录里创建scratch目录

三、运行

gauss-procedure-full-edited

(最后的Error是由于我Ctrl+C终止程序)

运行时的命令用sudo提示permission denied,所以应当用su获取超级权限。

取得超级用户权限,先给超级用户设置密码,终端输入以下命令,然后输入密码。

sudo passwd root

然后,输入以下命令,输入刚设置的密码

su -

这样进入的是root的根目录/root,需切换到用户目录/home/yourusername,亦即我们的g09目录存放的目录。

cd /home/username

输入以下命令,第一条是避免Segmentation fault(段错误)该命令只能在su下执行,在sudo下会提示权限不足(Permission denied),该命令也可添加进/etc/rc.loacal,开机自动执行,第二条是运行命令,”./g09/g09″是我的g09目录下的g09文件的地址,其中tasks是我的任务文件gif存放目录,可在命令末尾加上&表示后台执行。

echo 0 > /proc/sys/kernel/randomize_va_space
./g09/g09 tasks/xxx.gif &

rc.local-gauss

四、安装gview

在.bashrc末尾加上以下内容
export GV_DIR=/home/yourusername/gv/
export LIBPATH=/home/yourusername/gv/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/yourusername/gv/lib
PATH=$PATH:/home/yourusername/gv/

五、常见错误

1、forrtl: No such file or directory
没有创建scratch目录,或者目录路径设置不对,这是Gauss的输出目录。

2、Warning: omp_set_num_threads (4) greater than available cpus (2)
这是gif文件设置不对,cpu的核数为2却设成了4,只要打开改回电脑应有的cpu的个数就行了

3、Segmentation fault
Erroneous write during file extend. write -1 instead of 4096
Probably out of disk space.
Write error in NtrExt1: Bad address
Segmentation fault
解决办法:
sudo echo 0 > /proc/sys/kernel/randomize_va_space
最好写进/etc/rc.local文件(ubuntu系统,其他系统写进相应文件),令其开机自动加载该命令,省时省力。

4、ntrex1: Bad file descriptor
Error: segmentation violation
rax 0000000000000000, rbx 00007ffffffdecb0, rcx ffffffffffffffff
rdx 00000000000029b8, rsp 00007ffffffdebc8, rbp 00007ffffffdecc0
rsi 000000000000000b, rdi 00000000000029b8, r8  00002aaaaaaf2300
r9  0000000000000000, r10 00007ffffffde990, r11 0000000000000202
r12 00000000ffffffff, r13 000000000061c830, r14 0000000000000001
r15 0000000000010000
— traceback not available
Aborted (core dumped)
gif文件%chk设置错误,因为Linux下没有Windows下的分区和目录结构,例如,%chk=D:\he-test-c.chk,把分区号去除就可以了,例如%chk=he-test-c.chk。
5、运行g09后出错,查看log文件,信息如下:
Entering Gaussian System, Link 0=g09
Input=1.com
Output=1.log
Files in the Gaussian directory are world accessible.
This must be fixed.
原因是g09文件夹权限太高,如果整个改成777就有可能出这个问题。解决办法是除了scratch目录以外,均用755或者750等。(所以之前建议用更改用户组的办法来实现权限)。

升级Linux内核导致vmware无法使用(vmnet模块无法编译)解决方案

最近将ubuntu升级到了14.04,出现了vmware无法启动的情况。具体表现为:每次启动的时候都会弹出一个VMWare Kernel Module Updater的对话框,要求根据当前内核版本重新编译一些内核模块,但是其中网络模块vmnet总是编译失败。

查找相关资料发现原因在于升级到ubuntu 14.04之后现在的Linux内核版本是3.13,这个内核版本修改了一些底层函数,而VMWare的相关源码包还没有来得及修改相关代码。由于是内核版本的问题,所以同样的问题也大量出现在Fedora等系统上。

因此同样的问题可以继续存在于3.14, 3.15等后续版本中。

解决方法为修改vmnet模块的源码包中的两处代码。

1,获取root权限,进入相关目录:
su
cd /usr/lib/vmware/modules/source

2,解压vmnet源码包(得到vmnet-only文件夹):

tar -xf vmnet.tar

3,备份原来的文件:

mv vmnet.tar vmnet.tar.bak

4,修改源文件filter.c:

4.1,修改206行的:VNetFilterHookFn(const unsigned int hooknum // IN:

为:VNetFilterHookFn(const struct nf_hook_ops *ops, // IN:

4.2,修改255行的: transmit = (hooknum == VMW_NF_INET_POST_ROUTING);

为: transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);

5,打包修改过的文件,删除无用的文件

tar -uf vmnet.tar vmnet-only
rm -rf vmnet-only

6,重新编译内核模块,启动vmware

可以直接点击vmware workstation的图标,启动自动检测和编译过程;也可以通过命令:

vmware-modconfig --console --install-all

感谢:Bearox和Garrett Skjelstad

http://blog.csdn.net/bearox/article/details/21294609

http://ping8888.com/2013/12/13/vmware-modules-kernel-3-13/

原载于http://blog.csdn.net/yanxiangtianji

转载请注明出处

如何让wordpress 在新窗口打开链接?

如何让wordpress 在新窗口打开链接?

这个问题开始也一直困扰着我,后来在网上找了找发现有很多的方法,大体上有这么几种:

第一种:wordpress在新窗口打开链接

只要在header.php文件中,标签之间加入以下代码即可:

<base target=”_blank”>

这种方法简单有效,暂时还没有发现什么问题,本博客也是采用的这种方法。

第二种:wordpress在新窗口打开链接

打开wp-admin文件夹,找到admin-header.php文件打开。找到以下代码:

<a href=“<?php echo trailingslashit( get_bloginfo( ‘url’ ) ); ?>” title=“<?php esc_attr_e(‘Visit Site’) ?>” >
 在最后一个尖括号”>”前插入[target="_blank"](方括号内的内容)。然后保存该文件。这样,在后台打开前台首页的链接就会在新窗口打开了。

添加之后的代码是:

<a href=“<?php echo trailingslashit( get_bloginfo( ‘url’ ) ); ?>” title=“<?php esc_attr_e(‘Visit Site’) ?>” target="_blank" >
 第三种:留言评论在新窗口打开链接

首页打开wp-includes文件夹,找到comment-template.php文件打开。找到以下代码:

$return = “<a href=’$url’ rel=’external nofollow’ class=’url’>$author</a>”;
 在标签中插入一句[target="_blank"]尖括号中的内容,然后保存。这样,访客昵称所指向的链接就会在新窗口打开了。

添加之后的代码为:

$return = “<a href=’$url’ target="_blank" rel=’external nofollow’ class=’url’>$author</a>”;
 第四种:友情链接在新窗口打开链接

打开wp-admin目录下的includes文件夹,找到meta-boxes.php文件打开。找到以下代码:

<input id=“link_target_blank” type=“radio” name=“link_target” value=“_blank” <?php echo
 ( isset( $link->link_target ) && ($link->link_target == ‘_blank’) ? ‘checked=“checked”‘ : ”); ?> />
 将以上代码修改为:
<input id=“link_target_blank” type=“radio” name=“link_target” value=“_blank” checked=“checked” />
 这样就可以了。或者是你在添加友情链接时,在最下面有一些选项,可以直接选在新窗口打开链接的。