Sqlite 常用命令

SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。常用在单机模式或嵌入式模式下。 官网地址:https://www.sqlite.org/ 只导出数据库表结构 sqlite3 DATABASE_FILE.sqlite '.schema' > schema.sql 导出所有内容 sqlite3 DATABASE_FILE.sqlite '.dump' > dump.sql 导出 某张表内容 sqlite3 DATABASE_FILE.sqlite '.dump demotable1' > dump.sql 将一个表中的数据导入到另一张表中。 insert into v_arts(uuid,openid,title,keyword,views,status,ispub,islock,createtime,updatetime) select uuid,openid,title,'' as keyword,views,status,1 as ispub,0 as islock,createtime,updatetime from blog_articles; insert into v_artconts(uuid,content) select uuid,content from blog_article_contents;

2025-01-01 · 1 min · Eagle

FFmpeg 常用命令

一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频。 网址:https://www.ffmpeg.org/ 将视频转换为音频文件: ffmpeg -i input.mp4 output.avi m4a 文件转换为 mp3 文件: ffmpeg -i input.m4a -c:v copy -c:a libmp3lame -q:a 2 output.mp3 mp3 转 g711a 命令: ffmpeg -i test.mp3 -acodec pcm_alaw -f alaw -ac 1 -ar 8000 -vn test.alaw 使用 ffplay 播放测试 ffplay -i test.alaw -f alaw -ac 1 -ar 8000 mp3 转 gsm 命令: ffmpeg -i test.mp3 -ar 8000 -ac 1 test.gsm WAV 转 MP3 的 FFMPEG 命令: ffmpeg -i input.wav -codec:a libmp3lame -qscale:a 2 output.mp3

2025-01-01 · 1 min · Eagle

HTTP并发同一时间请求了两次

在 APP 和小程序网络请求中,都会出现同一时间并发请求两次的情况,以前没有碰到,不代表没有发生,现在在用户登陆后,添加了赠送豆子点数的逻辑,在查看记录的时候,发现了此问题。会出现同一用户在同一时间登陆两次的请求。不知道造成会同时请求两次的问题的根本原因是什么?但需要解决赠送两次的问题。 经过排查,在用户同时请求两次时,没有加锁,导致判断添加一直有效。最简单的方法是加锁。在 golang 中,锁是 sync.Mutex。加锁会影响一点点性能。 在加锁后,此问题得到解决。代码片段: var lock sync.Mutex var beanMap map[string]int64 lock.Lock() defer lock.UnLock() val,ok:=map[openid] // 查看是否已赠送? if ok { // 已赠送,可继续业务逻辑 }else{ // 还未赠送 // 赠送逻辑 }

2025-01-01 · 1 min · Eagle

Iperf3 常用命令

Iperf3 是一个网络性能测试工具。Iperf 可以测试最大 TCP 和 UDP 带宽性能,具有多种参数和 UDP 特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失.对于每个测试,它都会报告带宽,丢包和其他参数,可在 Windows、Mac OS X、Linux、FreeBSD 等各种平台使用,是一个简单又实用的小工具。 安装 yum install iperf3 使用 网络带宽测试 Iperf3 是 C/S(客户端/服务器端)架构模式,在使用 iperf3 测试时,要同时在 server 端与 client 端都各执行一个程序,让它们互相传送报文进行测试。 启动 Server 端的程序: iperf3 -s 启动 Client 端的程序: iperf3 -c 服务端IP地址 从打印内容可以查看网络带宽等参数。 更多内容请查看命令手册。

2025-01-01 · 1 min · Eagle

Linux Debian系设置固定 IP

1,Ubuntu18.04 设置固定 IP 修改/etc/netplan 下的 yaml 文件,修改为 network: ethernets: eth0: addresses: - 172.28.45.220/20 nameservers: addresses: [202.102.224.68,202.102.227.68] dhcp4: false version: 2 然后执行 sudo netplan apply 使用 ip a 查看地址是否变更 当 ping www.baidu.com提示Temporary failure in name resolution 那么需要执行 sudo dhclient -v -4 就可以解决了。

2025-01-01 · 1 min · Eagle

Linxu脚本自动交互

今天学习 Linux 脚本自动交互。需要完成 IP 归属地数据文件的维护,而 gmaker 工具里面有交互命令,现在想用脚本替代手动输入。 在我们日常的 Linux 指令中,有很多命令提供交互式操作,例如 sudo、ssh、ftp 等,如何使用脚本完成自动交互呢? 1,使用重定向 重定向是将标准输入输出进行重定向操作,例如将标准输入输出重定向到文件。用重定向标准输入到文件的前提,是命令支持有参数指定输入方式,如 ftp 就有-i 参数来指定使用标准输入来输入密码。 shell 使用重定向标准输入的方法有: command < file 将输入重定向到file 命令交互式重定向 command << delimiter document delimiter shell 会将分界符 delimiter 之间的内容作为输入。 例如,我们来使用 ftp 实现自动登录并运行 ls 的脚本,其中用户名为 test,密码为 123456。 ftp -i -n 192.168.1.10 <<EOF user test 123456 ls EOF 2,使用管道 管道命令使用|这个符号,它会将前一个命令的输出作为下个命令的输入。它也需要命令支持。 例如,实现 sudo 自动输入密码的脚本: echo '123456' | sudo -S cp file1 /backup/file1 其中,123456 是密码。 3,使用 expect 工具 expect 是用来做交互,基本任何交互的场合都能使用。在像 ssh 命令没有指定输入的参数,就很适合这种方式。 需要先安装 expect,安装命令如下: ...

2025-01-01 · 2 min · Eagle

MongoDB 常用命令

MongoDB 是一个流行的开源文档型数据库,它使用类似 JSON 的文档模型存储数据,这使得数据存储变得非常灵活。 官网地址:https://www.mongodb.com/ 当你需要迁移数据库时,或者进行备份时,使用 mongodump,可以将文件导出。 mongodump -h 127.0.0.1 --username 'xxx' -p '密码' --authenticationDatabase admin -d 数据库 --gzip --archive=xxx.gz 将数据导入到另一个服务器 mongo 数据库,或者进行升级。 mongorestore --uri="mongodb://localhost:27017" --gzip --archive=xxx.gz 如何你的数据库需要认证,那么请在 uri 中添加用户名和密码。 mongorestore --uri="mongodb://user:password@localhost:27017" --gzip --archive=xxx.gz 如果你的密码中包含如@等特殊字符,需要使用 uri encoded 工具将密码加密一下。 如果你要在 mongo 中创建用户,请使用如下命令: db.createUser({user:"user",pwd:"你的密码",roles:[{role:"readWrite",db:"你的数据库"}]}) 如果你已经拥有账户,想赋予新的数据库操作权限,请使用如下命令: db.grantRolesToUser('你的用户名',[{role:'readWrite',db:'你的数据库'}]) 查看数据库的命令show dbs; 删除数据库命令: use yourdb; db.dropDatabase(); 删除 id 为 4f29e4860b2e2ecb9910e304 的数据,操作 db.logs.remove({'_id':ObjectId('4f29e4860b2e2ecb9910e304')}) db.logs.deleteOne({'_id':ObjectId('4f29e4860b2e2ecb9910e304')}) 查询文档记录 db.logs.find({'adId':'887760470'}) 当报错no geo indices for geoNear,在集合中创建: db.feed.createIndex({loc:"2dsphere"}) 清空 logs 表记录 db.logs.deleteMany({}) 修改 logs 表记录 db.logs.update({userId:{$in:[id1,id2]}},{$set:{'sex':1}},{multi:true});

2025-01-01 · 1 min · Eagle

Mysql 常用SQL语句

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 官网地址:https://www.mysql.com/ 备份数据 mysqldump -uroot -p --database logs > logs.sql mysql 快速导入数百万级记录,这种方案可以节省很多时间。 mysql -uroot -p create database dbname; set sql_log_bin=off; set autocommit=0; use dbname; start transaction; source dbfilename; commit; 查询用户 ID,在有规律的名称中,例如群 mKe,群 aer,等中,查找出这些群,然后取出创建者,并去重。 在这里没有使用%模糊匹配,而使用_进行匹配一个任意字符。 select distinct creater_id from group_info where name like '群___'; 修改表的主键 key 自增值 alter table users auto_increment=1000; 查询用户留存率 select id,DATEDIFF(now(),ifnull(login_date,add_date)) as 'days' from user; 查询天数 select id,floor((DATEDIFF(now(),login_date))/7) as 'groupid' from user where login_date != ''; select t2.* from (select id,floor((DATEDIFF(now(),login_date))/7) as 'groupid' from user t1 where login_date != '') t2 where groupid < 2 and groupid >=1; select id,floor(0.05) as 'groupid' from user where login_date !=''; select now from user ; select t1.id,now() from user t1 where id = '9xxxxxxx'; 查询周数 ...

2025-01-01 · 2 min · Eagle

Postgresql 常用SQL语句

PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的 BSD 许可证下发行。 官网地址:https://www.postgresql.org/ 数据库安装 yum install postgresql 数据库启动停止 systemctl start postgresql systemctl stop postgresql Postgresql 数据文件目录/var/lib/postgres,使用的端口5432 pg9.4 启动脚本 #!/bin/bash #su - postgres -c "/usr/pgsql-9.4/bin/postmaster -D /var/lib/pgsql/9.4/data/" su - postgres -c "/usr/pgsql-9.4/bin/pg_ctl -D /var/lib/pgsql/9.4/data/ -l logfile start" pg9.4 关闭脚本 #!/bin/bash su - postgres -c "kill -INT `head -1 /var/lib/pgsql/9.4/data/postmaster.pid`" pg9.4 安装脚本 #!/bin/bash # install pg9.4 for centos7 type wget >/dev/null 2>&1 || { echo >&2 "I require wget but it's not installed. I will install it!";yum install -y wget; } echo "Downloading pg9.4" wget -c https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-3.noarch.rpm && rpm -ivh pgdg-centos94-9.4-3.noarch.rpm && yum install postgresql94-server -y /usr/pgsql-9.4/bin/postgresql94-setup initdb echo "Install Done!" 登录 postgresql 使用 rd 登录 postgresql ...

2025-01-01 · 6 min · Eagle

Rsync 常用命令

rsync 是一个常用的 Linux 应用程序,用于文件同步。它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件。 rsync 在 Linux 安装,安装命令如下: # ubuntu sudo apt install rsync # centos sudo yum install rsync 如果使用 Windows ,可以使用 cwRsync,它是 Windows 客户端 GUI 的一个包含 Rsync 的包装。您可以使用 cwRsync 快速远程文件备份和同步。 基本用法 在本机使用 rsync 命令时,可以作为 cp 和 mv 命令的替代方法,将源目录同步到目标目录。 rsync -r source destination 其中,-r 表示递归,即包含子目录。source 目录为源目录,destination 表示目标目录。 如果有多个目录需要同步,可以写成下面这样。 rsync -r source1 source2 destination 我们可以使用-a 参数替代-r,除了可以递归同步以外,还可以同步元信息(比如修改时间,权限)。由于 rsync 默认使用文件大小和修改时间决定文件是否需要更新,所以-a 比-r 更有用。下面的用法才是常见的写法。 rsync -a source destination 目标目录 destination 如果不存在,rsync 会自动创建。执行上面的命令后,源目录 source 被完整地复制到目标目录 destination 下面,即形成了 destination/source 的目录结构。 ...

2025-01-01 · 2 min · Eagle