首页
Search
1
解决 docker run 报错 oci runtime error
49,342 阅读
2
WebStorm2025最新激活码
27,592 阅读
3
互点群、互助群、微信互助群
22,748 阅读
4
常用正则表达式
21,551 阅读
5
罗技鼠标logic g102驱动程序lghub_installer百度云下载windows LIGHTSYNC
19,363 阅读
自习室
CODER
课程
SEO
学习视频
手册资料
呆萌
工具软件
运维
DBA
互通有无
资源
微信群
激活工具
搞钱日记
养生记
包罗万象
Search
标签搜索
DeepSeek
学习指北
Prompt
提示词
Loong
累计撰写
180
篇文章
累计收到
0
条评论
首页
栏目
自习室
CODER
课程
SEO
学习视频
手册资料
呆萌
工具软件
运维
DBA
互通有无
资源
微信群
激活工具
搞钱日记
养生记
包罗万象
页面
搜索到
180
篇与
的结果
2019-09-01
crontab计划任务误删除恢复方法
本来想执行 crontab -e的,没想到手一抖就输入了crontab ,然后就进入了下面这个样子。 一看不对劲,就随手按了 Ctrl + D。 接下来,恐怖的事情发生了,crontab的所有任务都被清空了。 查找资料发现如下: 如果遗漏了任何选项,crontab可能会打开一个空文件,或者看起来像是个空文件。这时敲delete键退出,不要按<Ctrl-D>,否则你将丢失crontab文件。 自己删的crontab,跪着也要找回来。 crontab有运行日志,在日志里面可以找到执行过的历史命令。前提是要有root权限。cat /var/log/cron* | grep CMD | awk -F'CMD' '{print $2}' | awk -F'[(|)]' '{print $2}' | sort -u 由此得到系统记录过的 crontab 执行命令,过滤其他账号的命令后即可追回目标账号的 crontab 任务。 grep CMD 可以改为 grep "(root) CMD" root 为某账号的crontab 。 命令是找回了,可是执行周期呢?cat /var/log/cron*|grep "(root) CMD"|grep "/data/scripts/send_mail.sh"|sort|uniq
2019年09月01日
7,512 阅读
0 评论
4 点赞
2019-08-26
mysql常用sql语句整理
常用sql语句整理:mysql增增加一张表CREATE TABLE `table_name`( ... )ENGINE=InnoDB DEFAULT CHARSET=utf8;增加记录INSERT INTO `your_table_name`(`column_name`)VALUES('your_value_one'),('your_value_two');增加字段ALTER TABLE `your_table_name` ADD `your_column_name` ...AFTER `column_name`;增加索引ALTER TABLE `your_table_name` ADD PRIMARY KEY your_index_name(your_column_name);ALTER TABLE `your_table_name` ADD UNIQUE your_index_name(your_column_name);ALTER TABLE `your_table_name` ADD INDEX your_index_name(your_column_name);ALTER TABLE `your_table_name` ADD FULLTEXT your_index_name(your_column_name);全文索引普通索引唯一索引主键删逐行删除DELETE FORM `table_name` WHERE ...;清空整张表TRUNCATE TABLE `your_table_name`;删除表DROP TABLE `your_table_name`;删除字段ALTER TABLE `your_table_name` DROP `column_name`;删除索引ALTER TABLE `your_table_name` DROP INDEX your_index_name(your_column_name);改变更数据UPDATE `table_name` SET column_name=your_value WHERE ...;变更字段ALTER TABLE `your_table_name` CHANGE `your_column_name` `your_column_name` ...(变更);变更字段值为另一张表的某个值UPDATE `your_table_name` AS a JOIN `your_anther_table_name` AS b SET a.column = b.anther_column WHERE a.id = b.a_id...;查普通查询SELECT `column_name_one`, `column_name_two` FROM `table_name`;关联查询SELECT *FROM `your_table_name` AS a JOIN `your_anther_table_name` AS b WHERE a.column_name = b.column_name...;合计函数条件查询:WHERE 关键字无法与合计函数一起使用SELECT aggregate_function(column_name)FROM your_table_name GROUP BY column_name HAVING aggregate_function(column_name)...;同一个实例下跨库查询SELECT *FROM database_name.your_table_name AS a JOIN another_database_name.your_another_table_name AS b WHERE a.column_name = b.column_name...;复制一张表结构CREATE TABLE `your_table_name` LIKE `destination_table_name`;完全复制一张表:表结构+全部数据CREATE TABLE `your_table_name` LIKE `destination_table_name`;INSERT INTO `your_table_name` SELECT *FROM `destination_table_name`;附录:mysql常用命令登陆: mysql -h host -u username -p列出数据库:SHOW DATABESES;列出表:SHOW TABLES;列出表结构:DESC table_name使用一个数据库:USE database_name;导入:source 'file';导出:mysqldump -h 127.0.0.1 -u root -p "database_name" "table_name" --where="condition" > file_name.sql;查看慢日志:mysqldumpslow -s [c:按记录次数排序/t:时间/l:锁定时间/r:返回的记录数] -t [n:前n条数据] -g "正则" /path新增用户: insert into user(Host, User, authentication_string) value('localhost', 'username', password('pwd'))mysql 5.7 新增用户// 插入新用户insert into mysql.user(Host, User, authentication_string, ssl_cipher, x509_issuer, x509_subjectvalue('localhost', 'username', password('password'), '', '', '');// 数据库授权grant all privileges on dbname.name.* to username@localhost identified by 'password';// 刷新权限信息FLUSH PRIVILEGES;
2019年08月26日
5,959 阅读
0 评论
1 点赞
2019-08-26
PHP获取用户基本信息
PHP获取用户基本信息<?php namespace app\home\controller; use think\Controller; define("APPID", ""); define('SECRET', ""); class WeChat extends Controller { //获取用户基本信息 public function getUser() { $appid=APPID; $secret=SECRET; // access_token 调用接口凭证,这里通过code换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同 // openid 普通用户的标识,对当前公众号唯一 //避免重复发送授权链接。已经获取用户信息,刷新页面,获得重新返回该页面,导致相同的授权链接再次请求,产生错误。 //把获取的用户信息保存,每次发送请求前,检查是否已经获取,如果已经获取用户信息,就不再请求。 //提示errcode":40163,"errmsg":"code been used。说明code被使用过一次了,code只能用一次。 //判断是否发送获取code连接 if (input('code')) { //获取到code判断code是否已经被使用过 if (!cache('code_array')){ //通过code获取access_token $code = input('code'); $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code"; $result=$this->request($url); if (!$result) { return false; } $arr=json_decode($result,true); cache('code_array',$arr,7200); } //获取access_token,openid $code_array=cache('code_array'); $access_token=$code_array['access_token']; $openid=$code_array['openid']; $url="https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN"; $result=$this->request($url); if (!$result) { return false; } //$arr 用户信息数组 $arr=json_decode($result,true); return $arr; }else{ //发送获取code连接 $url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=*****网站地址*****&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect"; //发送GET请求 header("Location: ".$url); exit();//必要 } } /* *发送GET请求方法 *@param string $url URL *@param bool $ssl 是否为https协议 *@return string 响应主体内容 */ private function request($url,$data=null){ $curl=curl_init(); curl_setopt($curl, CURLOPT_URL, $url); //设定为不验证证书和host curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if(!empty($data)){ curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } // 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出 curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); $output=curl_exec($curl); if (false===$output) { echo "<br/>",curl_error($curl),"<br/>"; return false; } curl_close($curl); return $output; } }
2019年08月26日
7,190 阅读
0 评论
6 点赞
2019-08-26
PHP获取微信access_token
PHP获取微信access_token<?php namespace app\home\controller; use think\Controller; define("APPID", ""); define('SECRET', ""); class WeChat extends Controller { /** *获取access_token */ public function getAccessToken() { $appid=APPID; $secret=SECRET; //access_token暂存地址在和入口文件同级目录下 $token_file='access_token.txt'; //判断access_token文件是否已经过期,未过期直接返回文件内容 $life_time=7200; if (file_exists($token_file) && time()-filemtime($token_file)<$life_time) { return file_get_contents($token_file); } //若是文件过期根据URL重新获取access_token $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret"; //发送GET请求 $result=$this->request($url); if (!$result) { return false; } //获取响应返回结果 $arr=json_decode($result,true); //将access_token保存在文件中 file_put_contents($token_file, $arr['access_token']); return $arr['access_token']; } /* *发送GET请求方法 *@param string $url URL *@param bool $ssl 是否为https协议 *@return string 响应主体内容 */ private function request($url,$data=null){ $curl=curl_init(); curl_setopt($curl, CURLOPT_URL, $url); //设定为不验证证书和host curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if(!empty($data)){ curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } // 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出 curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); $output=curl_exec($curl); if (false===$output) { echo "<br/>",curl_error($curl),"<br/>"; return false; } curl_close($curl); return $output; } }
2019年08月26日
5,686 阅读
0 评论
1 点赞
2019-08-26
PHP身份证验证类
<?php /** *身份证号处理函数 */ /** * 功能:根据身份证号,自动返回生日 * @param stirng $IDCard 身份证号 * @return Ambigous <string, NULL> */ function getBrithday ($idCard) { if (strlen($idCard) == 18) { $birthday = substr($idCard, 6, 4) . '-' . substr($idCard, 10, 2) . '-' . substr($idCard, 12, 2); } elseif (strlen($idCard) == 15) { $birthday = "19" . substr($idCard, 6, 2) . '-' . substr($idCard, 8, 2) . '-' . substr($idCard, 10, 2); } else { $birthday = null; } return $birthday; } /** * 功能:根据身份证号,自动返回性别 * @param string $cid 身份证号 * @param number $comm 返回的性别类型 * @return string 男/女 1/0 */ function getSex ($cid, $comm = 0) { $cid = getIDCard($cid); $sexint = (int) substr($cid, 16, 1); if ($comm > 0) { return $sexint % 2 === 0 ? '女' : '男'; } else { return $sexint % 2 === 0 ? '0' : '1'; } } /** * 功能:把15位身份证转换成18位 * @param string $idCard * @return newid or id */ function getIDCard ($idCard) { // 若是15位,则转换成18位;否则直接返回ID if (15 == strlen($idCard)) { $w = array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); $a = array("1","0","X","9","8","7","6","5","4","3","2"); $s = 0; $idCard18 = substr($idCard, 0, 6) . "19" . substr($idCard, 6); $idCard18_len = strlen($idCard18); for ($i = 0; $i < $idCard18_len; $i ++) { $s = $s + substr($idCard18, $i, 1) * $w[$i]; } return $idCard18.$a[$s % 11]; } else { return $idCard; } } /** * 根据身份证号返回年龄 * @param string $id 身份证号 * @return string|number */ function getAge($id){ //过了这年的生日才算多了1周岁 if(empty($id)) return ''; $date=strtotime(substr($id,6,8)); //获得出生年月日的时间戳 $today=strtotime('today'); //获得今日的时间戳 $diff=floor(($today-$date)/86400/365); //得到两个日期相差的大体年数 //strtotime加上这个年数后得到那日的时间戳后与今日的时间戳相比 $age=strtotime(substr($id,6,8).' +'.$diff.'years')>$today?($diff+1):$diff; return $age; }
2019年08月26日
5,565 阅读
0 评论
0 点赞
1
...
22
23
24
...
36