存档

文章标签 ‘自动’

shell脚本实现sh自动删除清理指定过期日期备份功能

2020年8月8日 没有评论

本脚本具体功能,请看脚本中备注的地方,前提条件,比如/backup/mybk下面的目录是年月日格式,比如:20200801(我的备份目录中,还有一个now文件夹也保留),大家可以自行修改为自己的代码,免费拿走。

#!/bin/bash
ROOT_UID=0
E_NOTROOT=67
if [ "$UID" -ne "$ROOT_UID" ]
then
        echo "Must be root to run this script"
        exit $E_NOTROT
fi

#配置需要操作的备份目录
backupDir=/backup/mybk

:<<!
#本脚本可以实现:(假设当前月是202008)
#保留当前备份文件夹now
#保留当前月备份文件夹:202008
#保留当前月后3个月备份文件夹:202007+202006+202005
#保留当前月后9个月备份文件夹中日期最大的一份(删除其他):202004+202003+202002+202001+201912+201911+201910+201909+201908
!


function arrDelete(){
	#把传递过来的数组作为arr
	arr=$1

	#找出数组中的最大值,初始值为0
	MAX=0
	for v in ${arr[@]}
	do
		if [[ $MAX -le $v ]]
		then
		    MAX=$v
		fi
	done

	#再循环一遍,比较大小,找到应该删除的文件夹
	for v in ${arr[@]}
	do
		if [[ $MAX -ne $v ]]
		then
			echo "不是当月最大,删除:"$backupDir"/"$v
			rm -rf $backupDir"/"$v
		fi
	done
}

function read_dir(){

	monthAgo0=$(date +%Y%m)
	monthAgo1=$(date "-d 1 month ago" +%Y%m)
	monthAgo2=$(date "-d 2 month ago" +%Y%m)
	monthAgo3=$(date "-d 3 month ago" +%Y%m)
	monthAgo4=$(date "-d 4 month ago" +%Y%m)
	monthAgo5=$(date "-d 5 month ago" +%Y%m)
	monthAgo6=$(date "-d 6 month ago" +%Y%m)
	monthAgo7=$(date "-d 7 month ago" +%Y%m)
	monthAgo8=$(date "-d 8 month ago" +%Y%m)
	monthAgo9=$(date "-d 9 month ago" +%Y%m)
	monthAgo10=$(date "-d 10 month ago" +%Y%m)
	monthAgo11=$(date "-d 11 month ago" +%Y%m)
	monthAgo12=$(date "-d 12 month ago" +%Y%m)

	for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令
	do
		if [ -d $1"/"$file ] #注意此处之间一定要加上空格,否则会报错
	then
		if [[ $file == *now* ]]
		then
			echo "now,保留全部:"$1"/"$file
		elif [[ $file == *$monthAgo0* ]]
		then
			echo "当月,保留全部:"$1"/"$file
		elif [[ $file == *$monthAgo1* ]] || [[ $file == *$monthAgo2* ]] || [[ $file == *$monthAgo3* ]]
		then
			echo "最近3个月,保留全部:"$1"/"$file
		elif [[ $file == *$monthAgo4* ]]
		then
			arrmonthAgo4[${#arrmonthAgo4[@]}]=$file
		elif [[ $file == *$monthAgo5* ]]
		then
			arrmonthAgo5[${#arrmonthAgo5[@]}]=$file
		elif [[ $file == *$monthAgo6* ]]
		then
			arrmonthAgo6[${#arrmonthAgo6[@]}]=$file
		elif [[ $file == *$monthAgo7* ]]
		then
			arrmonthAgo7[${#arrmonthAgo7[@]}]=$file
		elif [[ $file == *$monthAgo8* ]]
		then
			arrmonthAgo8[${#arrmonthAgo8[@]}]=$file
		elif [[ $file == *$monthAgo9* ]]
		then
			arrmonthAgo9[${#arrmonthAgo9[@]}]=$file
		elif [[ $file == *$monthAgo10* ]]
		then
			arrmonthAgo10[${#arrmonthAgo10[@]}]=$file
		elif [[ $file == *$monthAgo11* ]]
		then
			arrmonthAgo11[${#arrmonthAgo11[@]}]=$file
		elif [[ $file == *$monthAgo12* ]]
		then
			arrmonthAgo12[${#arrmonthAgo12[@]}]=$file
		else
			echo "超过12个月,删除:"$1"/"$file
			rm -rf $1"/"$file
		fi
	else
		echo "is file,skip:"$1"/"$file
	fi
	done

	#循环各个数组,删除其中不是最大的一个文件夹
	#注意:传递数组为参数,必须要用引号扩起来,否则只能获取到第一个下标
	arrDelete "${arrmonthAgo4[*]}"
	arrDelete "${arrmonthAgo5[*]}"
	arrDelete "${arrmonthAgo6[*]}"
	arrDelete "${arrmonthAgo7[*]}"
	arrDelete "${arrmonthAgo8[*]}"
	arrDelete "${arrmonthAgo9[*]}"
	arrDelete "${arrmonthAgo10[*]}"
	arrDelete "${arrmonthAgo11[*]}"
	arrDelete "${arrmonthAgo12[*]}"
}

#遍历备份目录并操作
read_dir $backupDir

分类: ubuntu高手 标签: , , , , ,

php自动裁剪图片,根据指定大小裁剪居中缩略图

2020年3月12日 没有评论
function image_center_crop($source,$target,$width,$height,$quality=100){
		if(!is_file($source)) {return false;}
		/* 根据类型载入图像 */
		switch(exif_imagetype($source)){
			case IMAGETYPE_JPEG:$image=imagecreatefromjpeg($source);break;
			case IMAGETYPE_PNG:$image=imagecreatefrompng($source);break;
			case IMAGETYPE_GIF:$image=imagecreatefromgif($source);break;
		}
		if(!isset($image)) {return false;}
		/* 获取图像尺寸信息 */
		$target_w=$width;
		$target_h=$height;
		$source_w=imagesx($image);
		$source_h=imagesy($image);
		/* 计算裁剪宽度和高度 */
		$judge=(($source_w/$source_h)>($target_w/$target_h));
		$resize_w=$judge?($source_w * $target_h)/$source_h:$target_w;
		$resize_h=!$judge?($source_h * $target_w)/$source_w:$target_h;
		$start_x=$judge?($resize_w-$target_w)/2:0;
		$start_y=!$judge?($resize_h-$target_h)/2:0;
		
		/* 绘制居中缩放图像 */
		$resize_img=imagecreatetruecolor($resize_w,$resize_h);
		imagecopyresampled($resize_img,$image, 0, 0, 0, 0,$resize_w,$resize_h,$source_w,$source_h);
		$target_img=imagecreatetruecolor($target_w,$target_h);
		imagecopy($target_img,$resize_img, 0, 0,$start_x,$start_y,$resize_w,$resize_h);
		/* 将图片保存至文件 */
		if(!file_exists(dirname($target))) mkdir(dirname($target),0777,true);
		imagejpeg($target_img,$target,$quality);
		return is_file($target);
	}

以上php代码可以实现php自动裁剪图片,根据指定大小裁剪居中缩略图。

分类: php学习 标签: , ,

PC网页端智能跳转至手机版识别代码

2017年6月4日 没有评论

提取自百度的自动识别代码,实现PC网页端智能跳转至手机版识别代码功能。如下:

function uaredirect(f){try{if(document.getElementById(“bdmark”)!=null){return}var b=false;if(arguments[1]){var e=window.location.host;var a=window.location.href;if(isSubdomain(arguments[1],e)==1){f=f+”/#m/”+a;b=true}else{if(isSubdomain(arguments[1],e)==2){f=f+”/#m/”+a;b=true}else{f=a;b=false}}}else{b=true}if(b){var c=window.location.hash;if(!c.match(“fromapp”)){if((navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i))){location.replace(f)}}}}catch(d){}}function isSubdomain(c,d){this.getdomain=function(f){var e=f.indexOf(“://”);if(e>0){var h=f.substr(e+3)}else{var h=f}var g=/^www\./;if(g.test(h)){h=h.substr(4)}return h};if(c==d){return 1}else{var c=this.getdomain(c);var b=this.getdomain(d);if(c==b){return 1}else{c=c.replace(“.”,”\\.”);var a=new RegExp(“\\.”+c+”$”);if(b.match(a)){return 2}else{return 0}}}};
使用方法:uaredirect(“http://m.baidu.com/”);

如何打开网页自动弹出QQ聊天窗口

2015年12月16日 没有评论

现在很多网站只要一打开,首页就会自动弹出一个QQ聊天询问窗口,这种行为有点不友好,但是越来越多人采用,那么如果我们要实现这样的功能,如何增加代码呢?

只要在html里面增加如下代码即可:

<iframe style=”display:none;” src=”tencent://message/?uin=你的QQ号码&Site=&menu=yes”></iframe>

php实现扫描二维码根据手机系统自动跳转至ios或者android下载地址

2015年7月6日 没有评论

自己将此文件命名为download.php,生成的二维码网址为http://www.域名.com/download.php

即可实现扫描二维码根据手机系统自动跳转至ios或者android下载地址。

php代码如下:

<?php
header(“Content-type:text/html; charset=utf-8″);
if(stripos($_SERVER[‘HTTP_USER_AGENT’],’iphone’) || stripos($_SERVER[‘HTTP_USER_AGENT’],’ipad’) || stripos($_SERVER[‘HTTP_USER_AGENT’],’ipod’)){
//ios download url
header(‘Location: http://itunes.apple.com/cn/’);
}
else if(stripos($_SERVER[‘HTTP_USER_AGENT’],’android’)){
$downArray=array(
//豌豆荚
‘wandoujia.com’     =>”,
//安智市场
‘anzhi.com’         =>”,
//安卓市场
‘apk.hiapk.com’     =>”,
//百度手机助手
‘shouji.baidu.com’  =>”,
//360手机助手
‘sj.360.cn’         =>”,
//应用汇
‘appchina.com’      =>”,
//应用宝
‘android.myapp.com’ =>”
);
header(‘Location: ‘.$downArray[array_rand($downArray)]);
}
else{
header(‘Location: http://m.baidu.com/’);
}
?>

分类: android 标签: , , ,
css.php