Skip,Take:

list = list.Skip(pageNum * pageSize).Take(pageSize).ToList();

pageSize :表示一页多少条。

pageNum:表示页数,但是正确的页数是pageNum + 1。因为pageNum = 0,是第一页。pageNum = 1的时候,是第二页。

Skip :表示从第pageNum * pageSize + 1条数据开始,也就是说再这之前有pageNum * pageSize条数据。

Take:表示显示多少条数据,也就是pageSize条。

list = list.Skip(5 * 2).Take(2).ToList();

pageNum * pageSize = 10,那么之前已经有10条数据。从第11条数据开始查询。查询2条。这就是第6页显示的内容。

C#控制台程序代码:

class Program   
  {   
      static int Main()   
      {   
          //每页条数   
          const int pageSize = 2;   
          //页码 0也就是第一条 
          int pageNum = 0;   
   
          //源数据   
          string[] names = { "刘一","陈二","张三","李四","王五","赵六","孙七","周八","吴九" };
       
          while (pageNum * pageSize < names.Length)   
          {   
              //分页   
              var query = names.Skip(pageNum * pageSize).Take(pageSize);   
              Console.WriteLine("输出第{0}页记录", pageNum + 1);   
              //输出每页内容   
              foreach (var q in query)   
              {   
                  Console.WriteLine(q);   
              }   
              pageNum++;   
          }   
   
          Console.ReadKey();   
   
          return 0;   
      }   
  }

结果:

1、备份现有源

sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak

2、一般情况下,将 /etc/apt/sources.list 文件中 Debian 默认的源地址 http://deb.debian.org/ 替换为国内源即可。

#中国科技大学
sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
#网易云163
sudo sed -i 's/deb.debian.org/mirrors.163.com/g' /etc/apt/sources.list
#阿里云
sudo sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
#清华同方
sudo sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

3、sudo apt-get update 更新索引以生效。

inux一键dd脚本支持Debian 9/10/11、Ubuntu 16.04/18.04/20.04、CentOS 7/8、RockyLinux 8和AlmaLinux 8系统的网络重装,自动适配境内境外系统源(境内使用阿里云,境外使用官方),适用于 GigsGigsCloud、AkkoCloud、GreenCloud和腾讯云等vps和云服务器。

使用命令:

wget -N --no-check-certificate https://down.vpsaff.net/linux/dd/network-reinstall-os.sh && \
chmod +x network-reinstall-os.sh && ./network-reinstall-os.sh

原文:https://www.idcoffer.com/archives/4870

public static string Guid8()
{
     byte[] buffer = Guid.NewGuid().ToByteArray();
     var num = BitConverter.ToUInt32(buffer, 0) ^ BitConverter.ToUInt32(buffer, 4) ^ BitConverter.ToUInt32(buffer, 8) ^ BitConverter.ToUInt32(buffer, 12);
     return num.ToString("X");
}

现在很多云服务或vps都逐渐支持IPv6了,但是由于IPv6路由等原因,体验可能非常不好,需要禁用。

单网卡快速禁用IPv6脚本:

nic=$(ip route get 8.8.8.8 | grep dev | awk -F'dev' '{ print $2 }' | awk '{ print $1 }')
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf \
&& echo "net.ipv6.conf.$nic.disable_ipv6 = 1" >> /etc/sysctl.conf \
&& sysctl -p

COSFS 功能说明

COSFS 工具支持将对象存储(Cloud Object Storage,COS)存储桶挂载到本地,像使用本地文件系统一样直接操作腾讯云对象存储中的对象, COSFS 提供的主要功能包括:

  • 支持 POSIX 文件系统的大部分功能,如:文件读写、目录操作、链接操作、权限管理、uid/gid 管理等功能。
  • 大文件分块传输功能。
  • MD5 数据校验功能。
  • 将本机数据上传至 COS,建议使用 COS Migration 工具 或 COSCMD 工具。

局限性

COSFS 基于 S3FS 构建, 读取和写入操作都经过磁盘中转,仅适合挂载后对文件进行简单的管理,不支持本地文件系统的一些功能用法,性能方面也无法代替云硬盘 CBS 或文件存储 CFS。 需注意以下不适用的场景,例如:

  • 随机或者追加写文件会导致整个文件的下载以及重新上传,您可以使用与 Bucket 在同一个地域的 CVM 加速文件的上传下载。
  • 多个客户端挂载同一个 COS 存储桶时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等。
  • 文件/文件夹的 rename 操作不是原子的。
  • 元数据操作,例如 list directory,性能较差,因为需要远程访问 COS 服务器。
  • 不支持 hard link,不适合高并发读/写的场景。
  • 不可以同时在一个挂载点上挂载、和卸载文件。您可以先使用 cd 命令切换到其他目录,再对挂载点进行挂载、卸载操作。

使用环境

支持主流的 Ubuntu、CentOS、SUSE、macOS 系统。

安装方式

1、根据系统版本选择对应的安装包,目前支持的 Ubuntu 发行版包括 Ubuntu14.04、Ubuntu16.04、Ubuntu18.04、Ubuntu20.04。

#Ubuntu16.04
sudo wget https://cos-sdk-archive-1253960454.file.myqcloud.com/cosfs/v1.0.19/cosfs_1.0.19-ubuntu16.04_amd64.deb
#Ubuntu18.04
sudo wget https://cos-sdk-archive-1253960454.file.myqcloud.com/cosfs/v1.0.19/cosfs_1.0.19-ubuntu18.04_amd64.deb
#Ubuntu20.04
sudo wget https://cos-sdk-archive-1253960454.file.myqcloud.com/cosfs/v1.0.19/cosfs_1.0.19-ubuntu20.04_amd64.deb

2、安装

sudo dpkg -i cosfs_1.0.19-ubuntu16.04_amd64.deb

使用方法

1. 配置密钥文件

在文件/etc/passwd-cosfs中,写入您的存储桶名称(格式为 BucketName-APPID),以及该存储桶对应的 <SecretId> 和 <SecretKey>,三项之间使用半角冒号隔开。为了防止密钥泄露,COSFS 要求您将密钥文件的权限值设置为640,配置/etc/passwd-cosfs密钥文件的命令格式如下:

sudo su  # 切换到 root 身份,以修改 /etc/passwd-cosfs 文件;如果已经为 root 用户,无需执行该条命令。
echo <BucketName-APPID>:<SecretId>:<SecretKey> > /etc/passwd-cosfs
chmod 640 /etc/passwd-cosfs

说明:

您需要将 <> 的参数替换为您的信息。

  • <BucketName-APPID>为存储桶名称格式,关于存储桶命名规范,请参见 存储桶命名规范
  • <SecretId> 和 <SecretKey>为密钥信息,您可前往访问管理控制台的 云 API 密钥管理 中查看和创建。
  • 您也可以将密钥配置在文件 $HOME/.passwd-cosfs 中,或通过 -opasswd_file=[path] 指定密钥文件路径,同时您需要将密钥文件的权限值设置为600。

示例:

echo examplebucket-1250000000:AKIDHTVVaVR6e3****:PdkhT9e2rZCfy6**** > /etc/passwd-cosfs
chmod 640 /etc/passwd-cosfs

2. 运行工具

将密钥文件中配置的存储桶挂载到指定目录,可以使用如下命令行:

cosfs <BucketName-APPID> <MountPoint> -ourl=http://cos.<Region>.myqcloud.com -odbglevel=info -oallow_other

其中:

  • <MountPoint> 为本地挂载目录(例如/mnt)。
  • <Region> 为地域简称, 例如 ap-guangzhou 、 eu-frankfurt 等。更多地域简称信息,请参见 可用地域
  • -odbglevel 指定日志级别,默认为crit,可选值为crit、error、warn、info、debug。
  • -oallow_other 允许非挂载用户访问挂载文件夹。

示例:

mkdir -p /mnt/cosfs
cosfs examplebucket-1250000000 /mnt/cosfs -ourl=http://cos.ap-guangzhou.myqcloud.com -odbglevel=info -onoxattr -oallow_other

注意:

  • COSFS 工具为提升性能,默认使用系统盘存放上传、下载的临时缓存,文件关闭后会释放空间。在并发打开的文件数较多或者读写大文件的时候,COSFS 工具会尽量多的使用硬盘来提高性能,默认只保留 100MB 硬盘可用空间给其他程序使用,可以通过选项 oensure_diskfree=[size] 设置 COSFS 工具保留可用硬盘空间的大小,单位为 MB。例如-oensure_diskfree=1024,COSFS 工具会保留1024MB剩余空间。
  • V1.0.5及较早版本的 COSFS,挂载命令为 cosfs <APPID>:<BucketName> <MountPoint> -ourl=<CosDomainName> -oallow_other。

3. 卸载存储桶

卸载存储桶示例:

方式1:fusermount -u /mnt, fusermount 命令专用于卸载 FUSE 文件系统 
方式2:umount -l /mnt, 当有程序引用文件系统中文件时,进行卸载不会报错,并在没程序引用时完成卸载
方式3:umount /mnt, 当有程序引用文件系统中的文件时,进行卸载会报错

常用挂载选项

-omultipart_size=[size]

用来指定分块上传时单个分块的大小(单位: MB),默认是10MB。 由于分块上传对单个文件块的数目有最大限制(10000块),所以对于超出100GB(10MB * 10000)大小的文件,需要根据具体情况调整该参数。

-oallow_other

如果要允许其他用户访问挂载文件夹,可以在运行 COSFS 的时候指定该参数。

-odel_cache

默认情况下,COSFS 工具为了优化性能,在 umount 后,不会清除本地的缓存数据。 如果需要在 COSFS 退出时,自动清除缓存,可以在挂载时加入该选项。

-onoxattr

禁用 getattr/setxattr 功能,在1.0.9之前版本的 COSFS 不支持设置和获取扩展属性,如果在挂载时使用了 use_xattr 选项,可能会导致 mv 文件到 Bucket 失败。

-opasswd_file=[path]

该选项可以指定 COSFS 密钥文件的所在路径,该选项设定的密钥文件需要设置权限为600。

-odbglevel=[dbg|info|warn|err|crit]

设置 COSFS 日志记录级别,可选 info、dbg、warn、err 和 crit。生产环境中建议设置为 info,调试时可以设置为 dbg。如果您的系统日志,未定期清理且由于访问量很大,生成大量日志,您可以设置为 err 或者 crit。

-oumask=[perm]

该选项可以去除给定类型用户,对挂载目录内文件的操作权限。例如,-oumask=755,对应挂载目录的权限变为022。

-ouid=[uid]

该选项允许用户 ID 为 [uid] 的用户不受挂载目录中文件权限位的限制,可以访问挂载目录中的所有文件。
获取用户 uid 可以使用 ID 命令,格式id -u username。例如执行id -u user_00,可获取到用户 user_00 的 uid。

-oensure_diskfree=[size]

COSFS 工具为提升性能,默认使用系统盘存放上传、下载的临时缓存,文件关闭后会释放空间。在并发打开的文件数较多或者读写大文件的时候,COSFS 工具会尽量多的使用硬盘来提高性能,默认只保留 100MB 硬盘可用空间给其他程序使用,可以通过选项 oensure_diskfree=[size] 设置 COSFS 工具保留可用硬盘空间的大小,单位为 MB。例如-oensure_diskfree=1024,COSFS 工具会保留1024MB剩余空间。

如果docker run redis时,查看日志发现警告:

WARNING overcommit_memory is set to 0! Background save may fail under low memory cThe TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

需要在docker run后面加入 --sysctl net.core.somaxconn=1024,如:

docker run --restart=always --name=redis --sysctl net.core.somaxconn=1024 -d -v /etc/redis:/etc/redis -p 6379:6379 redis:alpine redis-server /etc/redis/redis.conf --appendonly yes

如果docker run redis时,查看日志发现警告:

WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

需要在服务器上执行 sysctl vm.overcommit_memory=1 或者执行一下语句:

echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf \
&& sysctl -p

public int GetGBS(int num1, int num2)
{
	int temp, a, b;
	if (num1 < num2)
	{
		temp = num1;
		num1 = num2;
		num2 = temp;
	}
	a = num1;
	b = num2;
	while (b != 0)
	{
		temp = a % b;
		a = b;
		b = temp;
	}
	return num1 * num2 / a;
}