判断服务是否启动的脚本

@echo off

for /f “skip=3 tokens=4” %%i in (‘sc query WebClient’) do set “zt=%%i” &goto :next

:next

if /i “%zt%”==”RUNNING” (

echo 该服务在运行,将不进行任何操作

) else (

echo 该服务现在处理停止状态,将进行启动

net start WebClient

)

另存为bat文件

转载至https://www.iteye.com/blog/zhangwei2012-1876691

Ubuntu 开启 Crontab 计划任务日志

一、开启Crontab
编辑

crontab -e

需要注意一行的前面如果希望它执行的话,是不可以有#号的
m h dom mon dow command 分别是(minute; hour; day of month; month; day of week)的缩写

二、Ubuntu 下的 Crontab 日志功能不是自动开启的。开启日志功能的步骤是:

① 修改 rsyslog

sudo vim /etc/rsyslog.d/50-default.conf

找到:

#cron.* /var/log/cron.log
去掉前面的 #

② 重启 rsyslog

sudo  service rsyslog  restart

③ 此时就可以查看日志了

tail -f /var/log/cron.log

如果出现:

(CRON) info (No MTA installed, discarding output)
那么就是说,crontab执行脚本时是不会直接错误的信息输出,而是会以邮件的形式发送到你的邮箱里,这时候就需要邮件服务器了,如果你没有安装邮件服务器,它就会报这个错。如果是测试,可以用下面的办法来解决:

在每条定时脚本后面加入:

 >/var/log/cron.log 2>&1

新浪期货数据接口 API 实时数据/历史数据

实时数据
【例子】
http://hq.sinajs.cn/list=M0
豆粕连续 M0

返回值如下:
var hq_str_M0=”豆粕连续,145958,3170,3190,3145,3178,3153,3154,3154,3162,3169,1325,223,1371608,1611074,连,豆粕,2013-06-28″;

———————————————————-
查看 http://finance.sina.com.cn/futures/quotes/M0.shtml 页面,发现含义如下:

最新价: 3154 开盘价: 3170 最高价: 3190 最低价: 3145
结算价: 3162 昨结算: 3169 持仓量: 1371608 成交量: 1611074
买 价: 3153 卖 价: 3154 买 量: 1325 卖 量: 223

———————————————————-
这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。
0:豆粕连续,名字
1:145958,不明数字(难道是数据提供商代码?)
2:3170,开盘价
3:3190,最高价
4:3145,最低价
5:3178,昨日收盘价 (2013年6月27日)
6:3153,买价,即“买一”报价
7:3154,卖价,即“卖一”报价
8:3154,最新价,即收盘价
9:3162,结算价
10:3169,昨结算
11:1325,买 量
12:223,卖 量
13:1371608,持仓量
14:1611074,成交量
15:连,大连商品交易所简称
16:豆粕,品种名简称
17:2013-06-28,日期

———————————————-

新浪期货数据各品种代码(商品连续)如下

RB0 螺纹钢
AG0 白银
AU0 黄金
CU0 沪铜
AL0 沪铝
ZN0 沪锌
PB0 沪铅
RU0 橡胶
FU0 燃油
WR0 线材
A0 大豆
M0 豆粕
Y0 豆油
J0 焦炭
C0 玉米
L0 乙烯
P0 棕油
V0 PVC
RS0 菜籽
RM0 菜粕
FG0 玻璃
CF0 棉花
WS0 强麦
ER0 籼稻
ME0 甲醇
RO0 菜油
TA0 甲酸

CFF_RE_IF1307 股指期货好像没有期指连续

品种名 + 0 (数字0),代表品种连续,如果是其他月份,请使用品种名 + YYYMM

例如豆粕 2013年09月,M1309

http://hq.sinajs.cn/list=M1309

一次可以请求多个品种,例如

http://hq.sinajs.cn/list=CFF_RE_IF1307,TA0,M0,CFF_RE_IF1306,RB1309,M1309,SR1309,TA1309,Y1309,P1309,C1309,FG1309,WS1309,A1309,L1309,CF1309,CU1303

返回值

var hq_str_CFF_RE_IF1307=”2116,2217.8,2098,2168.6,1253068,808746000000,59806,2168.6,2144.6,2331.4,1907.8,,,2119,2119.6,70151,0,0,–,–,–,–,–,–,–,–,0,0,–,–,–,–,–,–,–,–,2013-06-28,15:33:30,0″; var hq_str_TA0=”甲酸连续,145956,7842,7848,7774,7844,7826,7828,7826,7814,7836,19,22,472758,205716,郑,甲酸,2013-06-28″; var hq_str_M0=”豆粕连续,145958,3170,3190,3145,3178,3153,3154,3154,3162,3169,1325,223,1371608,1611074,连,豆粕,2013-06-28″; var hq_str_CFF_RE_IF1306=”2312.8,2322.6,2277.6,2315.6,57266,39596400000,0,2315.6,2315,2797.4,1865,,,2329.8,2331.2,13893,0,0,–,–,–,–,–,–,–,–,0,0,–,–,–,–,–,–,–,–,2013-06-21,15:38:30,0″; var hq_str_RB1309=”螺钢1309,145957,3422,3468,3422,3440,3449,3452,3449,3447,3429,10,2,3750,3510,沪,螺钢,2013-06-28″; var hq_str_M1309=”豆粕1309,145958,3495,3512,3455,3488,3460,3461,3460,3478,3500,330,228,784354,519734,连,豆粕,2013-06-28″; var hq_str_SR1309=”白糖1309,145956,5172,5194,5165,5189,5192,5193,5192,5179,5184,5,198,334854,65036,郑,白糖,2013-06-28″; var hq_str_TA1309=”甲酸1309,145956,7842,7848,7774,7844,7826,7828,7826,7814,7836,19,22,472758,205716,郑,甲酸,2013-06-28″; var hq_str_Y1309=”豆油1309,145958,7120,7190,7112,7150,7150,7156,7152,7164,7140,55,42,318796,97838,连,豆油,2013-06-28″; var hq_str_P1309=”棕油1309,145956,5760,5828,5760,5786,5782,5784,5784,5798,5780,21,3,235638,67818,连,棕油,2013-06-28″; var hq_str_C1309=”玉米1309,145957,2417,2425,2415,2418,2418,2419,2418,2419,2413,43,95,427232,57906,连,玉米,2013-06-28″; var hq_str_FG1309=”玻璃1309,145956,1371,1378,1365,1372,1371,1372,1371,1372,1369,2,336,203932,184978,郑,玻璃,2013-06-28″; var hq_str_WS1309=”强麦1309,145955,2557,2558,2536,2552,2537,2538,2537,2543,2556,6,31,37406,14254,郑,强麦,2013-05-14″; var hq_str_A1309=”豆一1309,145946,4789,4792,4784,4791,4789,4790,4789,4789,4789,4,26,64086,5938,连,豆一,2013-06-28″; var hq_str_L1309=”乙烯1309,145958,10440,10485,10390,10440,10400,10405,10405,10440,10400,321,8,241618,188036,连,乙烯,2013-06-28″; var hq_str_CF1309=”棉花1309,145954,20435,20470,20390,20445,20390,20415,20390,20440,20425,76,5,27778,2188,郑,棉花,2013-06-28″; var hq_str_CU1303=””;

历史数据

新浪期货数据各品种代码(商品连续)如下
RB0 螺纹钢
AG0 白银
AU0 黄金
CU0 沪铜
AL0 沪铝
ZN0 沪锌
PB0 沪铅
RU0 橡胶
FU0 燃油
WR0 线材
A0 大豆
M0 豆粕
Y0 豆油
J0 焦炭
C0 玉米
L0 乙烯
P0 棕油
V0 PVC
RS0 菜籽
RM0 菜粕
FG0 玻璃
CF0 棉花
WS0 强麦
ER0 籼稻
ME0 甲醇
RO0 菜油
TA0 甲酸
商品期货
http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLineXm?symbol=CODE
例子:
http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine5m?symbol=M0
5分钟http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine5m?symbol=M0
15分钟
http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine15m?symbol=M0
30分钟
http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine30m?symbol=M0
60分钟
http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine60m?symbol=M0
日K线
http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesDailyKLine?symbol=M0
http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesDailyKLine?symbol=M1401

股指期货 5分钟
http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine5m?symbol=IF1306

15
http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine15m?symbol=IF1306
30分钟
http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine30m?symbol=IF1306

60分钟
http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine60m?symbol=IF1306

日线
http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesDailyKLine?symbol=IF1306

转至http://blog.sina.com.cn/s/blog_7ed3ed3d0101gphj.html

远程桌面连接没有授权服务器提供许可证会话中断

在Windows2012服务器中, 相信使用过远程桌面连接来登陆服务器的,都会遇到过这样的错误提示:“由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。请跟服务器管理员联系”,原因就是在Windows server 2012服务器中,微软默认的 远程登录只提供120天的使用期限,所以远程登录的使用期限一到就自然用不了远程桌面连接了。

方法/步骤
打开运行,在运行中输入注册表命令“regedit”,然后回车通过命令打开注册表对话框,操作如图所示:


在注册表对话框中依次打开“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod”,操作如图所示:

在这里要删掉注册表中的“GracePeriod”这一项,由于删掉注册表中的任何一项需要获取管理员的权限,所以在删掉“GracePeriod”之前,应该配置一下删除“GracePeriod”的管理员权限,具体操作如图所示:


获取管理员权限之后,再进行删除操作,如图:


删除“GracePeriod”这一项后,为了使注册表及时生效,此时要重启系统。

重启完成后就可以正常使用远程桌面来登陆服务器了。

转至https://jingyan.baidu.com/article/ceb9fb1070557f8cad2ba0b8.html

jupyter notebook Nbextensions 安装

安装nbextensions

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

安装 nbextensions_configurator

pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user

启动jupyter notebook

tensorflow2.x使用cuda10.2(非常简单)

# 目前tensorflow2.2/2.3官方标配cuda10.1,也是官方在github给出方案,修改cuda软链接即可,非常简单。也不影响pytorch1.5(cuda10.2)的继续使用。

# 前提是你已经正确安装cuda10.2,检查:

nvidia-smi
nvcc -V

# 干正事(重点就这二步):

cd /usr/local/cuda-10.2/targets/x86_64-linux/lib/
ln -s libcudart.so.10.2.89 libcudart.so.10.1

cd /usr/local/cuda-10.2/extras/CUPTI/lib64
ln -s libcupti.so.10.2.75 libcupti.so.10.1

# 检查添加路径:

vim /etc/profile
export CUDA_HOME=/usr/local/cuda-10.2
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${CUDA_HOME}/extras/CUPTI/lib64
export PATH=${CUDA_HOME}/bin:${PATH}
source /etc/profile

# 检查GPU:

>python
>>>import tensorflow as tf
>>>tf.__version__
2.2.0
>>>tf.test.is_gpu_available()
True
>>>tf.config.list_physical_devices('GPU')
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU'),
 PhysicalDevice(name='/physical_device:GPU:1', device_type='GPU'),
 PhysicalDevice(name='/physical_device:GPU:2', device_type='GPU'),
 PhysicalDevice(name='/physical_device:GPU:3', device_type='GPU')]

大功告成!

nohup python train_tf_model.py > log.txt 2>&1 &
watch -n 0.1 -d nvidia-smi     #每隔0.1秒刷新一次
tailf log.txt

tensorboard --logdir=callbacks --host=xxx.xx.xxx.xx 服务器地址

摘录自https://blog.csdn.net/sinat_20174131/article/details/106807448

SQLite C# version

SQLite C# version
If the first program, we check the version of the SQLite database.

Program.cs

using System;
using System.Data.SQLite;

namespace Version
{
    class Program
    {
        static void Main(string[] args)
        {
            string cs = "Data Source=:memory:";
            string stm = "SELECT SQLITE_VERSION()";

            using var con = new SQLiteConnection(cs);
            con.Open();

            using var cmd = new SQLiteCommand(stm, con);
            string version = cmd.ExecuteScalar().ToString();

            Console.WriteLine($"SQLite version: {version}");
        }
    }
}

添加spyder(通过PIP安装)的图标到收藏夹

本操作是在Ubuntu 20.04 下

cd /usr/share/applications
sudo gedit spyder.desktop
 
然后把下列复制到gedit中
 
[Desktop Entry]
Encoding=UTF-8
Name=Spyder3
Comment=The Python IDE
Exec=/usr/local/bin/spyder  ''spyder 路径
Icon=/home/你的用户名/spyder3.png  ‘’下载图片的路径
StartupNotify=True
Terminal=False
Categories=Development;Science;IDE;Qt;
Type=Application
StartupNotify=True
MimeType=text/x-python;
X-AppStream-Ignore=True

然后搜索spyder

记录excel(有密码)打不开,用python 还原。

记录excel(有密码)打不开,用python 还原。

from win32com.client import DispatchEx


def read_excel_password(filename, password):
    excel = DispatchEx("Excel.Application")  # 启动excel
    excel.Visible = False  # 去掉可视化
   
    demo = excel.Workbooks.Open(filename, UpdateLinks=False, ReadOnly=False, Format=None, Password=password)  # 打开文件并将密码传入

    #xlSheet_1 = demo.Worksheets(1)  # 打开第一个sheet
    demo.SaveAs("d:\\aaa.xls")  # 另存为
   
    #print(xlSheet_1.Cells(5, 4).Value)  # 打印第一个sheet的第一行一列数据
   
    demo.Close(True)  # 关闭文件
   
if __name__ == '__main__':
    filename = "E:\\xxx.xls"
    password = "xxx"
    read_excel_password(filename, password)

手机上的缓存,.m3u8.sqlite文件转换为视频文件

<?php
//设置源和目标文件路径
$path_soc = 'C:\Users\qinyu\Desktop\SQLite样本\';
$path_des = 'C:\Users\qinyu\Desktop\SQLite样本\';

$filesArr = getDirContent($path_soc);
$key = "";
$ts_encode_con = "";
$filesnum = sizeof($filesArr);
for($i = 0; $i < $filesnum; $i++ ){
    $allnum = $i + 1;
    echo '提取解密进度:' . $allnum . '/' . $filesnum . "\r\n";
    $db = new SQLite3($path_soc . $filesArr[$i]);
    $results = $db->query('select VALUE FROM caches where key like \'%get_dk%\'');
    while ($row = $results->fetchArray()) {
        $key = $row[0];
    }
    $results = $db->query('select key FROM caches where key like \'%start%\'');
    while ($row = $results->fetchArray()) {
        $a = strstr($row[0], "&end", true);
        $a = strstr($a, "start=");
        $idArr[] = str_replace("start=", "", $a );
    }
    sort($idArr);
    for($j=0; $j < sizeof($idArr); $j++) {
        $text = "select VALUE FROM caches where key like '%start={$idArr[$j]}&end=%'";
        //echo $text . "\r\n";
        $results = $db->query($text);
        while ($row = $results->fetchArray()) {
            $ts_encode_con .= $row[0];
        }
    }
    $db->close();
    $result = $path_des . $filesArr[$i] . '.ts';
    $result = str_replace(".m3u8.sqlite", "", $result);
    decode($ts_encode_con, $key, $result);
    unset($idArr);
    unset($ts_encode_con);
}
function getDirContent($path){
    if(!is_dir($path)) return false;
    $arr = array();
    $data = scandir($path);
    foreach ($data as $value) if($value != '.' && $value != '..'){
        $arr[] = $value;
    }
    return $arr;
}
function decode($con, $key, $result){
    $f = fopen($result, 'wb');
    fwrite($f, decrypt($con, $key));
    fclose($f);
}
function decrypt($string, $key)
{
    $decrypted = openssl_decrypt($string, 'AES128', $key, OPENSSL_RAW_DATA);
    return $decrypted;
}
?>

上面的代码,修改前两行的源文件夹和目标文件夹路径就可以用了,使用效果:

视频太大的时候,把1024的内存调大就可以了,比如10240

转:https://www.qinyuanyang.com/post/250.html