Archive

Archive for the ‘零敲碎打’ Category

DIR命令无法获得精确到秒的问题

July 5th, 2021 No comments

DIR命令无法获得精确到秒的问题

方法一,dir命令只能到分钟,如果需要到秒,建议改用forfiles命令

REM "delims=" is required to avoid stripping AM/PM
for /f "delims=" %%i in ('"forfiles /p C:\Users\limc /m *.bat /c "cmd /c echo @fdate @ftime" "') do set modif_time=%%i
echo %modif_time%

参考
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc753551(v=ws.11)?redirectedfrom=MSDN

方法二,用VBS的FileSystemObject方式解决

@set @n=0/*&echo off
dir /a-d/s/b|Cscript -nologo -e:jscript "%~f0" > 1.txt
pause&exit /b */
var fso=new ActiveXObject('scripting.FileSystemObject');
while(!WSH.StdIn.AtEndOfStream)
{
file=fso.GetFile(WSH.StdIn.ReadLine());
t=new Date(file.DateCreated);
t1 = t.getFullYear() + "-" + (t.getMonth() + 1) + "-" + t.getDate() + " " + t.getHours() + ":" + t.getMinutes() + ":" + t.getSeconds();
WSH.Echo(file + "\t" + t1);
}
Categories: 零敲碎打 Tags: , ,

nginx 首页不存在时默认返回404而不是403

July 5th, 2021 No comments

nginx 首页不存在时默认返回404而不是403

域名被某站劫持了导致整站被B,通过nginx设置将指定域名bound到指定的站点,然后强制返回404。

location = / {
return 404;
}

但是首页还是返回403代码。而不是预期的404。
于是让404正常,再直接把首页301 到一个不存在的资源。 完工

location = / {
index index.html
return 404;
}

location = /index.html {
return 301 /noexsit;
}

Categories: 零敲碎打 Tags:

[WordPress] 子目录下WP建站Nginx反向代理设置

July 5th, 2021 No comments

子目录下WP建站Nginx反向代理设置
参考官方文档,两种方式一下都可以实现要求

方法1,rewrite方式,适用php-fpm

location /替换子目录名称/ {
index index.html index.php;

if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}

if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}

if (!-f $request_filename){
rewrite (.*) /替换子目录名称/index.php;
}
}


方法2,使用try_files方式

location /替换子目录名称/ {
index index.php;
try_files $uri $uri/ /替换子目录名称/index.php?$args;
}

必须要做的,把wp-admin单独处理

rewrite /替换子目录名称/wp-admin$ $scheme://$host$uri/ permanent;

Categories: 博客技巧, 零敲碎打 Tags: , ,

[zsh]oh-my-zsh插件git目录卡顿的情况处理

April 1st, 2020 No comments

oh-my-zsh在git目录下执行命令会卡顿明显,简单的cd和ls都会
经查是agnoster主题的问题,会读取git的配置信息,如果项目目录下有太多的文件,卡顿会非常明显。
果然美观和性能最后都是二选一

可以使用以下命令禁止zsh自动获取git信息,解决卡顿问题

git config --global oh-my-zsh.hide-status 1

如果针对单个目录,可以在 git 项目目录执行

设置 oh-my-zsh 不读取文件变化信息

git config --add oh-my-zsh.hide-dirty 1

可以再设置 oh-my-zsh 不读取任何 git 信息

git config --add oh-my-zsh.hide-status 1

参考
https://my.oschina.net/u/614511/blog/646012

Categories: 零敲碎打 Tags:

[Ubuntu] Ubuntu17.04 安装curl

April 1st, 2020 No comments

Ubuntu 17.04 安装完毕后,没有curl,需要手动安装curl

sudo apt-get install curl

报错:没有这个软件、

尝试使用添加ppa方式,结果Ubuntu 17.04下无效

sudo add-apt-repository ppa:costamagnagianfranco/ettercap-stable-backports 
sudo apt-get update 
sudo apt-get install curl

最后改为使用源代码方式安装
源代码

#下载
wget https://curl.haxx.se/download/curl-7.58.0.tar.gz
#解压
tar xvf curl-7.58.0.tar.gz
#配置
cd curl-7.58.0
./configure
#编译
make
#安装
sudo make install

奇怪的是Ubuntu17.04 上 libcurl是有的,为啥去掉curl,不知道基于何种考虑

Categories: 系统管理, 零敲碎打 Tags:

[Ubuntu]使用open-iscsi发起iscsi连接Target

January 19th, 2020 No comments

名下有多台VPS服务器放在不同的云供应商那里,定期备份服务器数据成了很棘手的问题。
习惯上会使用挂载nfs方式,使用s3fs-fuse先将S3的Bucket挂载到本机分区,然后向该分区写入需要备份的文件,

但是近期S3的接入稳定性确实很差,即使是AWS的老家美国,使用s3fs-fuse挂载的分区,也不能有比较稳定的读写。
碰到大量文件和持续读写的情况,效果非常不理想

近期发现使用 AWS Storage Gateway可以直接让虚拟机连接到iscsi的target,然后操作相应的LUN和卷。iscsi协议因为使用了比HTTP/S更低的TCP/IP协议,相对s3fs方式可以更稳定。

另外 AWS Storage Gateway的传入流量是免费的,只收取存储到S3,EBS的的存储费用。

服务器版本:Ubuntu18.04 LTS
设备目标:/dev/sdc

一、安装和配置iscsi发起端程序
1.安装open-scsi和utils

#安装open-scsi和utils
sudo apt-get install open-iscsi open-iscsi-utils

2.发现iscsi target

#发现iscsi target
sudo iscsiadm -m discovery -t sendtargets -p XXX.XXX.XXX.XXX:3260

3.登陆target

#登陆target
sudo iscsiadm -m node --targetname iqn.1997-05.com.amazon.XXXXXX -p XXX.XXX.XXX.XXX:3260 --login

二、挂载硬盘

1.发现并分区格式化磁盘

fdisk -l

2.分区格式化LUN

fdisk /dev/sdc
mkfs.ext4 /dev/sdc1

3.挂载到指定

sudo mkdir /mnt/backup
sudo mount /dev/sdc1 /mnt/backup

4.卸载硬盘

sudo unmount /mnt/backup

三、开机自动连接到LUN,挂载硬盘

1.开机自动登陆target
修改/etc/iscsi/iscsid.conf,开启自动登陆到Gateway

vi /etc/iscsi/iscsid.conf
#自动开启
node.startup = automatic

2.修改/etc/fstab,实现开机自动挂载

#获取文件系统的UUID
tune2fs -l

修改/etc/fstab,实现开机自动挂载

#修改/etc/fstab
sudo vi /etc/fstab

#在/etc/fstab中添加

UUID=6dba31ff-xxxx-4430-bbd2-c1a932a53308 /backup ext4 _netdev 0 0

几个需要注意的地方:
1.如果跟AWS Storage Gateway连接期间发生未知中断,可以试试强制刷新设备

udevadm test /sys/block/sdc

2.如果发生连接超时的情况,通常跟网络质量有关,AWS推荐可以修改iscsid.conf

vi /etc/iscsi/iscsid.conf
# 修改连接超时参数
node.session.timeo.replacement_timeout = 600 
node.conn[0].timeo.noop_out_interval = 60
node.conn[0].timeo.noop_out_timeout = 600

参考
https://docs.aws.amazon.com/storagegateway/latest/userguide/initiator-connection-common.html#CustomizeLinuxiSCSISettings

Categories: 系统管理, 零敲碎打 Tags:

PostgreSQL使用PL/SQL和游标实现按日期批量执行

March 26th, 2019 No comments

现有的DWH系统的是按天创建数据表的,使得定期维护变得麻烦,例如每个月底需要将按当月产生的临时表archive。

方式1.批量生成SQL,按固定的日期值生成一堆SQL,SQL生成方法多样。但是需要确认全部sql是否正确。

方式2.编写PL/SQL function,使用游标方式批量执行。

DROP FUNCTION fun_datecursor(from_date text,to_date text,cond text);
CREATE OR REPLACE FUNCTION fun_datecursor(from_date text,to_date text,cond text) RETURNS text
AS $ 
DECLARE
    cur_date refcursor;
    buffer text := '';
    var_day DATE;
BEGIN
OPEN cur_date FOR EXECUTE 'SELECT generate_series('''|| from_date ||'''::date,'''|| to_date ||'''::date,'''|| cond ||''')'; 
    loop  --开始循环
        fetch cur_date INTO var_day;  --将游标指定的值赋值给变量
        IF found THEN 
             ---------------------------------------
             --任意的逻辑,或调用其他function
             ---------------------------------------
            buffer:= buffer || to_char(var_day,'yyyyMMdd'); 
           ELSE 
            exit; 
            END IF; 
    END loop;  --结束循环
close cur_date;  --关闭游标
RETURN buffer;
END
$ LANGUAGE plpgsql;

执行function

SELECT fun_datecursor('2008-03-01','2008-03-31','1 day’);
Categories: 零敲碎打 Tags: , ,