一、前言
系统备份会定期产生备份文件,日积月累,早期的备份应该删除。设定每周清理一下备份文件,只保留最近7天的数据。可以根据文件的时间检索并删除。适用于系统管理中的数据备份文件和日志文件的管理。
二、SHELL脚本
find /var/web/apache/logs -type f -ctime +7 -exec rm {} \;
这个脚本会将指定目录及其子目录的所有符合条件的文件删除,没有提示。
三、加入计划任务
将上述命令写入一shell脚本back.sh
赋予可执行权限chmod 755 back.sh
编辑计划任务:
#crontab -u user -e
back.sh脚本会在每周日凌晨2点执行。
有关crontab的详细命令参见相关资料,有很多。
这里只简要说明下,计划任务前5位用数字表示依次是:
分:(0——59)
小时:(1——23)
日:(1——31)
月:(1——12)
星期:(0——6,0为星期日)
某个系统管理员一不小心直接用数据库管理工具把一文章表的标题字段类型改了,导致所有文章标题不能正常显示了。上万条的数据有点懵了。之前数据库也没有备份过。试图修复数据库也没有成功。唯一的希望寄托在数据库本身的结构上。
由于文章的部分信息在另外一个表中也有所体现,标题信息正在其中。只要将这部分信息重写回表中就可以恢复。两个表是通过ID相关联的。检索出文章对应的标题并写回原表。但是原表文章范围大于另一个表,只要少量信息不存在。能恢复大部分信息就好了。
<?php
$DB_Server = "localhost";
$DB_Username = "root";
$DB_Password = "password";
$DB_DBName = "dbname";
//$DB_TBLName = "column_article";
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password)
or die("Couldn't connect.");
$Db = @mysql_select_db($DB_DBName, $Connect)
or die("Couldn't select database.");
$sql = "Select column_article.title,column_article.articleid,article.title,article.id from column_article,article where column_article.articleid=article.id";
$ALT_Db = @mysql_select_db($DB_DBName, $Connect)
or die("Couldn't select database");
$result = @mysql_query($sql,$Connect)
or die(mysql_error());
$i = 0;
while($row = mysql_fetch_row($result))
{
$title2=$row[0];
$title2id=$row[1];
$upd = @mysql_query("update article set article.title='$title2' where article.id=$title2id",$Connect);
$i++;
}
return (true);
?>
linux下用户创建文件、文件夹都会有一个默认权限,系统默认文件夹权限是755,文件权限是644这个默认权限是可以设定的,就是通过umask,通过在shell下运行umask命令来看看当前的umask数值是多少,例如文件夹默认权限是755,他的umask数值为022。
这个数值表示的是什么意思,又如何来计算出想要的umask值。umask是在下面的配置文件中设定/etc/profile(全局设置),$ [HOME]/.bash_profile或者$ [HOME]/.profile(当前用户的设置,操作系统版本不同,文件名会不同)。在配置文件中加入一行umask 022即可。
umask值的计算方法,是通过权限的补码得来。例如文件夹权限755,文件夹的umask各位数值最大可以到7,各位数的补码就是022;而文件权限最大只能到6,因为系统不允许新建文件拥有执行权限。
umask值与文件、目录权限对照表:
umask 文件 目录
——————————
0 6 7
1 6 6
2 4 5
3 4 4
4 2 3
5 2 2
6 0 1
7 0 0
将apache日志按年月日目录分类存放,便于日志分析系统分析。使用cronolog来完成,有windows和linux的版本。Linux安装,解压缩后执行
#./configure
#./make
#./make install
在httpd.conf配置使用cronolog,在每个虚拟主机中,加入
CustomLog "|/usr/local/sbin/cronolog /var/logs/%Y/%m/%Y%m%d_access.log" combined
ErrorLog "|/usr/local/sbin/cronolog /var/logs/%Y/%m/%Y%m%d_error.log"
Windows下cronolog安装,解压缩后,将cronolog.exe文件放到apache安装目录的bin下。配置httpd.conf
TransferLog "|D:/Apache/bin/cronolog.exe D:/Apache/logs/%Y/%m/%d/access.log"
ErrorLog "|D:/Apache/bin/cronolog.exe D:/Apache/logs/%Y/%m/%d/access.log"
说明:数据表fawen是文件的标题,正文等信息,数据表pishi是各领导对文件的批示信息,pishi的articleid字段内容与fawen的id相关联。要统计出某位领导的所有批示,导出EXCEL,内容是:文件名称、批示内容、批示时间。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| <?php
$DB_Server = "localhost";
$DB_Username = "root";
$DB_Password = "pass";
$DB_DBName = "office";
$DB_TBLName = "fawen";
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password)
or die("Couldn't connect.");
$Db = @mysql_select_db($DB_DBName, $Connect)
or die("Couldn't select database.");
$file_type = "vnd.ms-excel";
$file_ending = "xls";
header("Content-Type: application/$file_type");
header("Content-Disposition: attachment; filename=mydowns.$file_ending");
header("Pragma: no-cache");
header("Expires: 0");
$now_date = date('Y-m-d H:i');
$title = "格式:第一列为文件名,第二列为领导批示内容,第三列为批示日期";
$sql = "Select $DB_TBLName.title,pishi.content,pishi.time from $DB_TBLName,pishi where pishi.leadername='领导名称' and $DB_TBLName.id=pishi.articleid";
$ALT_Db = @mysql_select_db($DB_DBName, $Connect)
or die("Couldn't select database");
$result = @mysql_query($sql,$Connect)
or die(mysql_error());
$result2 = @mysql_query($sql2,$Connect)
or die(mysql_error());
echo("$titlen");
$sep = "t";
//for ($i = 0; $i < mysql_num_fields($result); $i++) {
//echo mysql_field_name($result,$i) . "n";
//}
print("nnn");
$i = 0;
while($row = mysql_fetch_row($result))
{
$schema_insert = "";
for($j=0; $j<mysql_num_fields($result);$j++)
{
if(!isset($row[$j]))
$schema_insert .= "NULL".$sep;
elseif ($row[$j] != "")
$schema_insert .= "$row[$j]".$sep;
else
$schema_insert .= "".$sep;
}
$schema_insert = str_replace($sep."$", "", $schema_insert);
$schema_insert .= "t";
print(trim($schema_insert));
print "nnnn";
$i++;
}
return (true);
?> |
对已知数目的查询条件,使用数组定义,然后遍历数组,使用while循环查询符合数组数值条件的记录,并统计。
片段:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| //数组
$workArray = array("办公室", "财务基建", "人事处", "老干部处", "机关党委","纪检监察","综合处","核算处","政法处","工业处","能源处","农村处","国贸处","外经处","投资处","服务业处","人口处","社科处","普查中心","基普办","科研所","计算中心","教育中心","记者站","印刷厂");
while (list($key,$value) = each($workArray)) {
$z--;
$sql5="select count(id) as id from art where author='$value' and createdate>='$starttime' and createdate <='$endtime'";
$r5= $DB_web->query_first($sql5);
print "<tr bgcolor='#DDDDDD'>";
print "<td height='20'> $value</td>";
print "<td height='20'> $r5[id]</td>";
print "</tr>";
} |
背景:在使用ASP的BLOG程序上传文件时候,报错,发现只能上传200K以下文件。运行环境是windows2003/IIS6,ASP程序是无组件上传模块。
错误信息:Request 对象 错误 ‘ASP 0104 : 80004005′
参考网址:微软知识库http://support.microsoft.com/kb/327659/
解决方法:修改默认允许的最大请求。首先停止IIS服务。打开 %systemroot%System32Inetsrv 中的 metabase.XML文件,查找AspMaxRequestEntityAllowed,修改默认的数值200K(204800),如50M为51200000。
建议:采用ASP上传组件替代无组件,并将上面数值还原。
1、Apache2.2.9的安装只用了一个配置命令:
./configure –prefix=/usr/local/apache –enable-rewrite=shared
2、Tomcat5.5.16二进制方式,解压。
3、安装jakarta-tomcat-connectors-jk2-src-current.tar.gz
下载地址:http://archive.apache.org/dist/jakarta/tomcat-connectors/jk2/source/
解压后,进入到jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2目录
执行./configure –with-apxs2=/usr/local/apache/bin/apxs
make
拷贝mod_jk2.so文件,到apache的modules目录。
cp jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache2/mod_jk2.so
/usr/local/apache/modules/
4、配置apache配置文件:
编辑httpd.conf
Listen 10.10.10.197:80下面添加一行,加载mod_jk2.so.
LoadModule jk2_module modules/mod_jk2.so
找到下面一行,并且去掉注释符号#,加载虚拟主机配置文件
Include conf/extra/httpd-vhosts.conf
5、配置虚拟主机:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <VirtualHost *>
ServerAdmin web@domain.com
DocumentRoot "/usr/local/tomcat/webapps"
#需要转给tomcat处理的文件名,如*.jsp,这里是*.*所有文件处理转给tomcat
<Location ~ "/*.*">
JkUriSet worker ajp13:localhost:8009
</Location>
ServerName search.domain.com
ErrorLog "logs/search-error_log"
CustomLog "logs/search-access_log" common
#定义虚拟主机目录属性,新版本的apache必须要加这段,否则无法指定默认根目录之外的目录
<Directory "/usr/local/tomcat/webapps">
Options Indexes FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</VirtualHost> |
此次安装的版本比较低,适用于某个老系统的环境要求。费了一些周折,网络上提供的资料准确性有限,很杂乱。需要自己的实践和研究总结一些方法。
环境:Redhat AS5,Apache1.3.9,PHP4.1.2,Mysql4.1,ZendOptimizer-2.5.7
其他软件:zlib-1.2.3.tar.gz(后面会提及) 阅读全文…
奥运了,各单位对信息安全特别重视,要求加强服务器安全,所有服务器统一修改密码,关闭WEB服务器除了80端口的所有端口,关闭远程控制SSH。统一使用单位的VPN服务来管理。关闭外部的所有链接,除了VPN服务器的,这样,就必须通过VPN来远程控制服务器,VPN只有管理员才有账户登录权限。
限制访问主机的服务。可以限制,只能是指定的IP才能访问本机的某个服务。
编辑/etc/hosts.allow
加入下面的一行,允许10.0.0.1通过ssh服务链接服务器:
sshd:10.0.0.1
编辑/etc/hosts.deny,加入:
ALL: ALL@ALL, PARANOID
拒绝其他所有的服务请求。
通过上述设置后,先通过登录VPN系统认证后,再使用SSH登录服务器就可以了。
最新评论