Linux下如何限制单个文件夹大小

1、创建一个指定大小的磁盘镜像文件:

dd if=/dev/zero of=/root/disk.img bs=2M count=10
这样就创建了一个大小为20M的磁盘镜像。

2、挂载为设备

losetup /dev/loop0 /root/disk.img

3、格式化设备

mkfs.ext3 /dev/loop0

4、挂载为文件夹

mkdir /test
mount -t ext3 /dev/loop0 /test
这样/mnt/disk1这个文件夹只能使用20M的空间。

5、卸载方法:先卸载文件夹

umount /test

6、卸载设备

losetup -d /dev/loop0

7、如果不再使用可以直接删除镜像文件

rm -f /root/disk.img

Linux下rsync同步服务安装

安装配置

1、拷贝配置文件到/etc/rsyncd.conf

cp /usr/share/doc/rsync/examples/rsyncd.conf /etc/rsyncd.conf

2、打开配置文件

vim /etc/rsyncd.conf 

3、打开后需要去掉注释的语句

  • 设置密码文件位置:
    secrets file = /etc/rsyncd.secrets
  • rsync进程启动位置:
    pid file = /var/run/rsyncd.pid
  • 日志文件位置:
    log file = /var/log/rsyncd (该文件需要手动创建)
  • 修改rsync的同步位置:
    path = /home/test

4、编辑密码

vim /etc/rsyncd.secrets      
root:123456

5、设置启动方式

vim /etc/init.d/rsync        
RSYNC_ENABLE 原值为false 改为true
Vim /etc/default/rsync       
RSYNC_ENABLE 原值为false 改为true

6、重启rsync服务

/etc/init.d/rsync restart        

7、设置定时任务

vim /etc/crontab            
* * * * * root rsync -avz --delete  root@192.168.1.11::ftp /home/test/

避免crontab同时执行多个rsync脚本的方法

如果某脚本要跑30分钟,可以在crontab里把脚本间隔设为至少一小时来避免冲突。

而比较糟的情况可能该脚本在执行周期内没完成,接着第二个脚本又开始跑了。如何确保只有一个脚本实例运行? \
linux下面:flock \
help显示如下:

flock (util-linux 2.13-pre7)
Usage: flock [-sxun][-w #] fd#
       flock [-sxon][-w #] file [-c] command...
  -s  --shared     Get a shared lock
  -x  --exclusive  Get an exclusive lock
  -u  --unlock     Remove a lock
  -n  --nonblock   Fail rather than wait
  -w  --timeout    Wait for a limited amount of time
  -o  --close      Close file descriptor before running command
  -c  --command    Run a single command string through the shell
  -h  --help       Display this text
  -V  --version    Display version

比如在rsync定时同步某文件夹的时候,可能担心上一次任务还没执行完,下一次就开始了。于是可以采用如下方式:

1 * * * * flock -xn /var/run/rsync.lock -c 'rsync -avz --delete   root@192.168.1.11::ftp /home/samba/share'

对照usage,x创建一个独享锁,n是如果已存在就退出,然后一个lock文件,c是shell命令,具体内容就是rsync。 \
注意点:我们需要自己创建rsync.lock文件:touch /var/run/rsync.lock

linux设置网络延迟和丢包操作用于测试

可以通过TC的方式来设定

  • 清除设备策略:tc qdisc del root dev eth0 2>/dev/null
  • 设置设备策略:tc qdisc add dev eth0 root netem loss 5%

其它示例:

tc qdisc add dev eth0 root netem loss 5%
tc qdisc add dev eth0 root netem delay 200ms
tc qdisc add dev eth0 root netem delay 200ms loss 5%