LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 933|回复: 10

如何用rsync镜像slackware-current???

[复制链接]
发表于 2005-8-16 22:53:47 | 显示全部楼层 |阅读模式
我发现在教育网内slackware-current的镜像真是太少了
好不容易找了个hk的最新更新又是六月份的
但不用代理总算快把currnet下载回来
我想再用一个工具把它更新一下(也就是如果有新文件就替换没有就不变)
rsync能成吧?
可是google了一下都是关于服务器端设置服务才能sync备份的文章
怎么办呢?
man了一下感觉太多了
有没有这样做过的兄弟给个实例我参考一下呀?
先谢谢了
发表于 2005-8-16 23:08:43 | 显示全部楼层
据我在slack官方提供的镜像下载站点中的查找,好像没有哪一个镜像站点提供给个人用户rsync的服务帐号的。
rsync主要是用来保持主站点和slk其它镜像站点之间同步的,开放给个人用户实在风险太大,不太可能。
楼主的意图是想伴随slackware-current进行更新,其实写一个好的lftp脚本应该也可以实现这样的功能,只是我
功力不够,待高人指点了。
关于rsync的用法可以看这篇文章比较详细了:
http://www.leftworld.net/wenzhang/show/1687.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-17 00:13:40 | 显示全部楼层
谢谢
有人说用lftp mirror
回去试试
回复 支持 反对

使用道具 举报

发表于 2005-8-17 03:40:56 | 显示全部楼层
试着作了一个不完善的脚本(lftpM):

  1. #/usr/bin/bash
  2. lftp slackware.mirrors.tds.net:/pub/slackware/slackware-current/ -e ' \
  3. get -c BOOTING.TXT && \
  4. get -c CHECKSUMS.md5 && \
  5. get -c CHECKSUMS.md5.asc && \
  6. get -c COPYING && \
  7. get -c COPYRIGHT.TXT && \
  8. get -c CRYPTO_NOTICE.TXT && \
  9. get -c CURRENT.WARNING && \
  10. get -c ChangeLog.txt && \
  11. get -c FAQ.TXT && \
  12. get -c FILELIST.TXT && \
  13. get -c GPG-KEY && \
  14. get -c PACKAGES.TXT && \
  15. get -c README.NPTL && \
  16. get -c SPEAKUP_DOCS.TXT && \
  17. get -c SPEAK_INSTALL.TXT && \
  18. get -c Slackware-HOWTO && \
  19. get -c UPGRADE.TXT && \
  20. mirror -c --parallel=2 extra && \
  21. mirror -c --parallel=2 isolinux && \
  22. mirror -c --parallel=2 kernels && \
  23. mirror -c --parallel=2 rootdisks && \
  24. mirror -c --parallel=2 slackware && \
  25. mirror -c --parallel=2 testing && \
  26. quit'
复制代码

可如下操作

  1. # mkdir -p slackware/slackware-current
  2. # cd slackware
  3. # vi lftpM                                                                  /*内容如上*/
  4. # chmod +x lftpM
  5. # cd slackware-current
  6. # ../lftpM
复制代码


脚本中的网址可以换成其它的更快的镜像站点,http的镜像也可以用。
为了保持同步可以把脚本加入到后台计划任务中去。
脚本中没有同步slk准备放弃的安装包和资源包,如果需要可以添加。
“mirror -c --parallel=2 extra && \”这一段可以删掉,extra目录是slackware额外的安装包,
发行iso的时候应该不会加入,而且该目录下还有占很大空间的source目录。
可惜lftp不带类似于wget的黑白名单的功能,而wget又不带镜像功能。要想精确控制下载的文件,
可能需要再修改脚本的下载项目,或者使用sed之类的工具过滤后再重定向到lftp的下载项里,需要
高手指路了……
回复 支持 反对

使用道具 举报

发表于 2005-8-17 10:55:53 | 显示全部楼层
顶一下!我也想找一个这样的方法,让单位的机器镜像一下current的目录,好方便自己升级。楼上的方法回去试试,有没有更好的方法?请dx指教啊~~
回复 支持 反对

使用道具 举报

发表于 2005-8-17 19:31:43 | 显示全部楼层
我提供的那个脚本,经我测试过是完全可用的。虽然实现的不够优雅,定期运行这个脚本,可以保持与
slackware-current的同步更新。这样就可以把swaret的root指向本地目录了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-17 20:20:31 | 显示全部楼层
这个脚本很不错了
但是有一个问题
我用了快两天的时间下载了6月份的全部镜像
然后再按这个脚本去更新的话
不可能实现完全同步吧?
因为它没有rsync中的--delete功能
那吗我想是不是楼上兄弟好事再做到底
再加上一段检查文件的脚本呢?
也就是说以某种方式检查一下remote和locale的文件名和大小,把过时的文件d掉
再一个就是想问
我没仔细研究过slk的安装方式
每个文件夹下如a下有个installpkg这样的脚本来控制要安装的包吧?
我在想它是不是也可以像debian那样很多软件包在这个目录下有用的没用的过时的最新的
它能挑出来想要装的装上?
我记的好像不是这样,好像是把a下所有的东西全都装上
这样的话连老版本的也不就都装上了?
如果有个脚本把老的东西清除掉就好了吧
不是有个pkglist.txt吗?
这个可以利用一下吧
回复 支持 反对

使用道具 举报

发表于 2005-8-17 20:39:43 | 显示全部楼层
我用了快两天的时间下载了6月份的全部镜像
然后再按这个脚本去更新的话
不可能实现完全同步吧?
因为它没有rsync中的--delete功能
那吗我想是不是楼上兄弟好事再做到底
再加上一段检查文件的脚本呢?
也就是说以某种方式检查一下remote和locale的文件名和大小,把过时的文件d掉

直接在你下载的目录下删除不需要的目录就好,不删也可以。
执行那个脚本本身就可以更新的,因为有镜像的命令啊,那几个get的命令主要是下载几个文本文件,
很小的东东,不值得镜像了,lftp也会对照文件信息绝定是否更新的。
如果你对已有的劳动成果不舍得,也可以把所有的目录都添加到脚本中,或者直接镜像上层目录。
每个文件夹下如a下有个installpkg这样的脚本来控制要安装的包吧?
我在想它是不是也可以像debian那样很多软件包在这个目录下有用的没用的过时的最新的
它能挑出来想要装的装上?
我记的好像不是这样,好像是把a下所有的东西全都装上
这样的话连老版本的也不就都装上了?
如果有个脚本把老的东西清除掉就好了吧

由于脚本下载的是current,所以所有的包都是最接近当前时间点的,不存在新旧软件包混在
一个目录下的情况。关于如何安装软件包请查一下精华贴。
如果是新安装系统可以用grub引导安装,把安装源指向你下载的目录。安装完系统后用
swaret指向下载的current,定期执行镜像脚本再自己本地使用swaret更新就好。
回复 支持 反对

使用道具 举报

发表于 2005-8-18 13:12:13 | 显示全部楼层
FCOPT = -s --progress --bps -l 1 -x '*kde*'

SERVER = ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-current

DIR = bootdisks rootdisks kernels isolinux slackware

all: $(DIR)

$(DIR):
        ftpcopy $(FCOPT) $(SERVER)/$@ $@
回复 支持 反对

使用道具 举报

发表于 2005-8-18 16:57:24 | 显示全部楼层
我把
#!/bin/sh
/opt/csw/bin/rsync -vrlpt --delete ftp.slackware.at::slackware/slackware-10.1 /opt/csw/apache/htdocs/slackware
写进一个shell文件,然后用cron定期自动执行。
做成的这个
slack.vetcafe.net
镜像的。
rsync那句是抄来的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表