无论是在windows下还是linux下,很多的日志文件如果不定时删除会充满硬盘,所以可以分别写个脚本定时处理一下。
Windows下bat文件内容如下;
代码如下 | 复制代码 |
@echo off forfiles -p "D:\servers\apache2.2\logs" -s -m *.log -d -15 -c "cmd /c del @path" forfiles -p "D:\servers\mysql\logs" -s -m *.log -d -15 -c "cmd /c del @path" |
备份
bat文件内容为:
代码如下 | 复制代码 |
@echo copy D:work*.db E:bake1 exit |
可以将上面的目录换成指定的目录,*.log可以筛选一下文件格式,-d后面的参数为负数表示多少天之前的,正数是多少天之后的。保存成bat文件,然后在Windows计划任务里面设置每天执行的时间就可以了。
Linux下面的shell文件内容如下:
代码如下 | 复制代码 |
#!/bin/bash # 删除30天之前的文件 find /var/usr/nginx/logs/ -mtime +30 -type f -name \*.gz | xargs rm -f |
1. 定期备份网站代码和文件
脚本web.sh
代码如下 | 复制代码 |
#!/bin/bash cd /home/wwwroot date=`date -I`; # backup website /bin/tar -cjf ./backup/website_$date.tar.bz2 website # romove old data find ./backup -type f -mtime +7 -exec rm -f {} |
脚本原理:先进入备份目录;然后定义日期格式;按日器执行备份;删除旧的备份数据(7天前)。
2. 定期备份数据库
脚本db.sh
代码如下 | 复制代码 |
#!/bin/bash cd /home/wwwroot/backup date=`date -I`; /usr/bin/mysqldump -u root --password=123456 website > website_$date.sql /bin/gzip -9 website_$date.sql |
上述脚本中-u后接数据库用户名, –password后接数据库密码,紧接着是数据库名,>后面是备份的目录。
gzip -9 是用最高的压缩率把导出的数据库进行压缩。
同样的将上面的目录换成自己指定的目录,后面的\*.gz表示文件扩展名,-mtime后面的参数与上面Windows的相反,正数表示多少天之前的文件。将上面的内容保存成.sh并使用chmod +x 设置成可执行权限,然后放到定时任务中去执行即可。
时间: 2024-09-24 17:11:32