分类 Linux 下的文章

利用脚本备份vps上网站数据的到dropbox网盘

看到有人用dropbox备份网站数据,所以今天也试了一下,记得以前是一个python脚本,这是用的是bash 脚本,利用dropbox的api来上传下载的,很方便,脚本的地址是Dropbox-Uploader/dropbox_uploader.sh at master · andreafabrizi/Dropbox-Uploader · GitHub ,感谢作者分享这个脚本。
因为网速慢,也懒得截图,所以直接贴的文字,大家将就下吧。

  • 第一步:下载dropbox_uploader.sh
    可以到git下载,地址为:https://github.com/andreafabrizi/Dropbox-Uploader

或者也可以直接拷贝代码,保存为dropbox_uploader.sh,注意拷贝的时候最好是复制到文本编辑器里面,如notepad++之类的
将dropbox_uploader.sh,我这里上传到/home目录下

  • 第二步:配置dropbox_uploader.sh和创建dropbox app
    首先要修改将dropbox_uploader.sh为可执行的,命令如下:

chmod u+x /home/dropbox_uploader.sh //这里后面写将dropbox_uploader.sh的存放路径,最好是绝对路径
sh /home/dropbox_uploader.sh //开始配置dropbox_uploader.sh
运行后会有下面的提示(我这没截图,所以直接从shell脚本里调出这段提示文字);
This is the first time you run this script."
`Please open this URL from your Browser, and access using your account:
-> https://www2.dropbox.com/developers/apps`
`If you haven't already done, click \"Create an App\" and fill in the
form with the following data:`
App name: MyUploader78878788

 `App type: Core` 

Permission type: App folder or Full Dropbox
Now, click on the \"Create\" button.
When your new App is successfully created, please type the
App Key, App Secret and the Access level:
意思很简单,你因为是第一次运行这个dropbox_uploader.sh,所以先要创建dropbox app,然后才能上传文件。
当然前提是你必须有个dropbox的账号了,没有就自己注册个,反正免费的。
用浏览器进入创建dropbox app的地址:https://www2.dropbox.com/developers/apps
进入后点击 Create an app 的按钮
有三个app选择,这里我们选择 第三个,即名字叫做”Core“
App name这行输入刚才脚本提示的,我这里是MyUploader78878788
下面的Permission type,任选一个,我选择的是Full Dropbox
然后点击右下角的 create app,第一次创建app会要求验证邮箱,所以会发送一封验证邮件到你的注册邮箱,验证之后,以后创建app就不用再验证了
创建好app之后,就会得到 App Key和 App Secret,按照脚本要求输入对应的key和secret,回车,就会有一些提示,让你确认是输入的信息是否正确,英文很简单,都看的懂的,我也懒得截屏了。
其中最后一步很关键,会有提示:
`Please visit this URL from your Browser, and allow Dropbox Uploader
to access your DropBox account:
--> https://www2.dropbox.com/1/oauth/authorize?oauth_token=sjfooijiu87
Press enter when done...`
这一步就是要求你进入:https://www2.dropbox.com/1/oauth/authorize?oauth_token=sjfooijiu87 这个地址去给 dropbox_uploader.sh关联和访问你创建的app的权限,打开这个网址,你点击允许就可以了。
然会回到命令行,回车,整个脚本配置过程就结束了。
第三步:用dropbox_uploader.sh将网站的备份文件长传到dropbox
命令也不是很多,用法也简单,一些参数如下:
Usage: ./dropbox_uploader.sh COMMAND [PARAMETERS]...
Commands:
upload [LOCAL_FILE/DIR] <REMOTE_FILE/DIR> //上传参数
download [REMOTE_FILE/DIR] <LOCAL_FILE/DIR> //下载参数
delete [REMOTE_FILE/DIR] //删除参数
move [REMOTE_FILE/DIR] [REMOTE_FILE/DIR] //移动
mkdir [REMOTE_DIR] //在dropbox创建文件夹
list <REMOTE_DIR> //显示dropbox的文件列表
share [REMOTE_FILE] //共享dropbox的指定文件
info //查看你的dropbox的容量使用情况,用户名
unlink //这个就是解除脚本和app的关联和授权
我就就简单的举个例子,我将all.www.tar.gz备份到dropbox的根目录,命令为ksharpdabu.tar.gz,命令如下;
sh /home/dropbox_uploader.sh upload all.www.tar.gz ksharpdabu.tar.gz
我这整个博客的文件和数据打包压缩有114MB,上传没用一分钟就搞定了,所以对于个人博客还是很方便的。
其实结合计划任务使用更好,加入 contab,外加增量备份,就更完美了,我这就懒得举例了,我一个博客打包压缩才114M,所以直接才用了完全备份。

发现写完后,别人早就写过一篇了,算了,反正我没看别人的文章自己按照作者的脚本弄的,都写完了,不可能删了。

来源:http://www.ksharpdabu.info/site-data-backup-using-the-script-to-dropbox.html

用Tiny Tiny RSS 搭建自己的rss订阅网站教程

因为我的vps上已经部署了LNMP的环境,所以,我只需要将Tiny Tiny RSS的网站源码上传到网站根目录,配置下数据库和域名就可以使用了。以下是我的步骤。

  • 第一步:先到DNS商那里添加个二级域名,我这里用的A记录,指向我的vps。我用的是DNSPod的服务,所以,我先去dnspod那里添加我为rss网站设定的二级域名——rss.pcwuyu.com。

  • 第二步:在vps的lnmp下新建一个nginx的虚拟机,添加一个名为rss/的目录作为rss网站的根目录,这个根据自己的情况设定。然后将这个网站根目录与刚才添加的二级域名(即rss.pcwuyu.com)绑定好。

  • 第三步:新建一个数据库,tiny tiny rss支持两种数据库:mysql和postgresql。我用的是mysql,我这里新建一个叫做rss的数据库。创建的方法大家自己选,不熟悉的可以用phpmyadmin,熟悉的就直接用mysql命令吧,
    Mysql> CREATE DATABASE rss //在登陆mysql后输入一下命令创建数据库

注意:其实,tiny rss 不一定要单独创建一个数据库,他也可以和别的网站共享数据库,但是为了方便管理,我们最好单独创建一个,毕竟rss订阅的数据量还是很大的。

  • 第四步:到Tiny Tiny rss官网下载网站程序源码
    #wget –c https://github.com/gothfox/Tiny-Tiny-RSS/archive/1.9.tar.gz

将下载的网站源码包Tiny-Tiny-RSS-1.X.X.tar.gz复制到网站的根目录,我这里就是我创建的rss/目录。

    1. 解压网站源码包,命令如下:
      #tar zxfv Tiny-Tiny-RSS-1.X.X.tar.gz

    1. 进入解压后的Tiny-Tiny-RSS-1.X.X/目录,将里面的所有文件拷贝到网站根目录,命令如下:
      #cd Tiny-Tiny-RSS-1.X.X/ //进入刚刚解压的Tiny-Tiny-RSS-1.X.X/目录

#cp –Rp * rss/ //这里根据自己的根目录的绝对路径来写,我这里假设我的根目录就是rss/

    • c.用浏览器打开,rss.pcwuyu.com,就会看到网站的安装界面,要求你填入数据库名称,数据库用户名,数据库密码等。正确输入后,确认,就会自动安装。
      注意:安装的时候,会有部分文件的权限要求,比如说cache目录下的一些文件夹要求777权限,我们根据提示来设定就可以了。

    • d.会提示你是否初始化数据库,我这里选择是,然后一切都装好了。清除浏览器换从,重新打开rss.pcwuyu.com,然后就会看到网站的登陆界面,默认账号是:admin,密码是password。

    • f.然后进偏好设置(preference)里面修改一些设置,更具自己的需求来设置,比如,我们肯定要进行的操作就是修改管理员的密码,偏好设置里面有个user,里面可以增加和删除网站的用户,分配用户权限等。还有最重要的那就是导入你的opml文件。

    • 导入自己的rss文件后,最重要的一步就是设置让网站程序自己更新rss信息,方法如下:
      因为程序开发这为了安全,所以禁止以root身份运行update.php这个更新rss信息的php脚本,所以,我们要用非root身份来设置crontab计划任务。

    #useradd ksharpdabu //新建一个叫ksharpdabu的用户
    #su ksharpdabu //切换账号到ksharpdabu
    $crontab -e //新建crontab计划任务

    • 将下面的代码粘贴到crontab 文件里面
      */30 * * * * /usr/bin/php /home/rss/update.php --feeds --quiet //这里设置的每隔30分钟更新一次rss信息

    注意:
    /usr/bin/php :这里是php绝对路径,为了安全才这么写的。如果你嫌麻烦,可以直接写成下面的形式:
    */30 * * * * php /home/rss/update.php --feeds --quiet
    /home/rss/update.php : 指的是网站根目录下的update.php文件,这里一定要写这个文件的绝对路径。

    至于rss的更新时间频率,自己可以修改,就是crontab的命令使用,大家自己谷歌,我这里就不详细讲解了。

    --feeds --quiet :这个是update.php的参数,想知道update.php有哪些参数,可以使用下面的命令(不能用root身份运行):
    $php /home/rss/update.php

    提示可用参数如下:
    Options:
    --feeds - update feeds
    --feedbrowser - update feedbrowser
    --daemon - start single-process update daemon
    --task N - create lockfile using this task id
    --cleanup-tags - perform tags table maintenance
    --quiet - don't output messages to stdout
    --log FILE - log messages to FILE
    --indexes - recreate missing schema indexes
    --update-schema - update database schema
    --convert-filters - convert type1 filters to type2
    --force-update - force update of all feeds
    --list-plugins - list all available plugins
    --help - show this help
    Plugin options:
    --update_self - update tt-rss installation to latest version

    • 1.插件地址:http://tt-rss.org/redmine/projects/tt-rss/wiki/Plugins

    • 2.tiny tiny rss 主题下载安装教程地址:http://tt-rss.org/redmine/projects/tt-rss/wiki/Themes

    • 3.升级tiny tiny rss:(升级网站程序的时候,建议禁止第三方的主题)
      Upgrading Tiny Tiny RSS

    It is highly recommended to temporarily disable any third party themes and user CSS customizations before upgrading. Don't forget to empty your browser cache if you experience weird bugs right after upgrading.
    Note that you should upgrade to the latest version available, installing intermediate releases sequentially is not needed.
    In-place upgrading
    The recommended way is in-place upgrading using the updater plugin. There are several specific requirements for updater to work: the user you run updater as should have writable access both to tt-rss and tt-rss parent directories on your web server.
    For example, if tt-rss is installed at /var/www/tt-rss, both /var/www and /var/www/tt-rss need to be writable by the updater user.
    In case of web updater, the user is whatever your site runs PHP under (for example, www-data). In case of CLI updating, you can easily run the plugin as an arbitrary user.
    Please note that updater renames your old tt-rss directory and replaces it with a pristine new one. You will need to copy all locally modified files (e.g. plugins, CSS themes, modified templates, .htaccess files) back from the previous installation (it will be renamed as tt-rssXXXXX in a parent directory). The only exception to this are feed icons and config.php which are copied into the new directory automatically.
    Warning: Third party plugins you have been using might not be compatible with the newer tt-rss version. If you experience crashes right after upgrading, start with disabling all third party plugins to see if that resolves it.
    Warning: In 1.7.6 in-place updater requires CURL. It will fail with RC=2 when CURL functions are not present in PHP.
    Warning: Do not copy cache/ directories from your old tt-rss directory after upgrading.
    You will need to enable the updater plugin by adding it to PLUGINS directive in config.php if it's not enabled yet.
    Afterwards, go to Preferences -> Update Tiny Tiny RSS and follow instructions.
    You can also update from the command line if you have PHP CLI access by running update.php --update_self.
    Proceed to section 3.
    Manual upgrading
    If, for some reason, you are unable to use the in-place updater or updating from an older version which doesn't have it yet, proceed with manual upgrade.
    Download the new archive from tt-rss.org. Unpack it. Replace your old tt-rss directory with a newer one, optionally copying config.php, contents feed-icons, and your other modified files - plugins, CSS files, etc.
    Warning: Third party plugins you have been using might not be compatible with the newer tt-rss version. If you experience crashes right after upgrading, start with disabling all third party plugins to see if that resolves it.
    Proceed to the next section.
    Merging new config.php directives and updating the database
    After the files have been upgraded by newer versions, open tt-rss. It may complain about missing directives in config.php. If that happens, you will need to either merge new stuff from config.php-dist to your config.php or remove config.php and rerun the installer (take note to copy previous value of FEED_CRYPT_KEY if you have feeds with authentication enabled).
    Warning: DO NOT INITIALIZE DATABASE when upgrading. This will remove ALL your tt-rss data.
    Afterwards, you may be redirected to the database updater. Log in with admin credentials and follow instructions.
    Finishing that, you should be able to use tt-rss normally by logging in with your normal account.
    Post-upgrade tasks

    1. You might need to clear your browser cache if you experience CSS or script-related issues, older scripts might have stuck in it.

    2. Do not copy cache directories from your old tt-rss version, it is unnecessary and potentially creates problems if you don't preserve file modification times.

    3. If you are using an accelerator like php-apc you might need to restart apache if older cached versions of PHP files got stuck in cache (this happens rarely, but is a possibility).

    Linux必学的系统管理命令(1)

    对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心。熟悉了Linux常用的文件处理命令以后,这一讲介绍对系统和用户进行管理的命令。

    • df

      • 1.作用
        df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。

      • 2.格式
        df [options]

      • 3.主要参数
        -s:对每个Names参数只给出占用的数据块总数。

    -a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
    -k:以1024字节为单位列出磁盘空间使用情况。
    -x:跳过在不同文件系统上的目录不予统计。
    -l:计算所有的文件大小,对硬链接文件则计算多次。
    -i:显示inode信息而非块使用量。
    -h:以容易理解的格式印出文件系统大小,例如136KB、254MB、21GB。
    -P:使用POSIX输出格式。
    -T:显示文件系统类型。

    • 4.说明
      df命令被广泛地用来生成文件系统的使用统计数据,它能显示系统中所有的文件系统的信息,包括总容量、可用的空闲空间、目前的安装点等。

    超级权限用户使用df命令时会发现这样的情况:某个分区的容量超过了100%。这是因为Linux系统为超级用户保留了10%的空间,由其单独支配。也就是说,对于超级用户而言,他所见到的硬盘容量将是110%。这样的安排对于系统管理而言是有好处的,当硬盘被使用的容量接近100%时系统管理员还可以正常工作。

    • 5.应用实例
      Linux支持的文件系统非常多,包括JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、vfat、MSDOS等。使用df -T命令查看磁盘空间时还可以得到文件系统的信息:

    df -T
    文件系统 类型 容量 已用 可用 已用% 挂载点
    /dev/hda7 reiserfs 5.2G 1.6G 3.7G 30% /
    /dev/hda1 vfat 2.4G 1.6G 827M 66% /windows/C
    /dev/hda5 vfat 3.0G 1.7G 1.3G 57% /windows/D
    /dev/hda9 vfat 3.0G 2.4G 566M 82% /windows/E
    /dev/hda10 NTFS 3.2G 573M 2.6G 18% /windows/F
    /dev/hda11 vfat 1.6G 1.5G 23M 99% /windows/G
    从上面除了可以看到磁盘空间的容量、使用情况外,分区的文件系统类型、挂载点等信息也一览无遗。

    • top

      • 1.作用
        top命令用来显示执行中的程序进程,使用权限是所有用户。

      • 2.格式
        top [-] [d delay] [q] [c] [S] [s] [i] [n]

      • 3.主要参数
        d:指定更新的间隔,以秒计算。

    q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
    c:显示进程完整的路径与名称。
    S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
    s:安全模式。
    i:不显示任何闲置(Idle)或无用(Zombie)的行程。
    n:显示更新的次数,完成后将会退出top。

    • 4.说明
      top命令是Linux系统管理的一个主要命令,通过它可以获得许多信息。这里我们结合图1来说明它给出的信息。

    top命令的显示
    *第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。第二行显示的是所有启动的进程、目前运行的、挂起(Sleeping)的和无用(Zombie)的进程。第三行显示的是目前CPU的使用情况,包括系统占用的比例、用户使用比例、闲置(Idle)比例。第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。第五行显示交换分区使用情况,包括总的交换分区、使用的、空闲的和用于高速缓存的大小。第六行显示的项目最多,下面列出了详细解释。
    PID(Process ID):进程标示号。
    USER:进程所有者的用户名。
    PR:进程的优先级别。
    NI:进程的优先级别数值。
    VIRT:进程占用的虚拟内存值。
    RES:进程占用的物理内存值。
    SHR:进程使用的共享内存值。
    S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。
    %CPU:该进程占用的CPU使用率。
    %MEM:该进程占用的物理内存和总内存的百分比。
    TIME+:该进程启动后占用的总的CPU时间。
    Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。
    top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
    <空格>:立刻刷新。
    P:根据CPU使用大小进行排序。
    T:根据时间、累计时间排序。
    q:退出top命令。
    m:切换显示内存信息。
    t:切换显示进程和CPU状态信息。
    c:切换显示命令名称和完整命令行。
    M:根据使用内存大小进行排序。
    W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
    可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。

    • 5.应用实例
      使用top命令可以监视指定用户,缺省情况是监视所有用户的进程。如果想查看指定用户的情况,在终端中按“U”键,然后输入用户名,系统就会切换为指定用户的进程运行界面。

    • free

      • 1.作用
        free命令用来显示内存的使用情况,使用权限是所有用户。

      • 2.格式
        free [-b|-k|-m] [-o] [-s delay] [-t] [-V]

      • 3.主要参数
        -b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。

    -s delay:显示每隔多少秒数来显示一次内存使用情况。
    -t:显示内存总和列。
    -o:不显示缓冲区调节列。

    • 4.应用实例
      free命令是用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。

    free -b -s5
    使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次。

    • quota

      • 1.作用
        quota命令用来显示磁盘使用情况和限制情况,使用权限超级用户。

      • 2.格式
        quota [-g][-u][-v][-p] 用户名 组名

      • 3.参数
        -g:显示用户所在组的磁盘使用限制。

    -u:显示用户的磁盘使用限制。
    -v:显示没有分配空间的文件系统的分配情况。
    -p:显示简化信息。

    • 4.应用实例
      在企业应用中磁盘配额非常重要,普通用户要学会看懂自己的磁盘使用情况。要查询自己的磁盘配额可以使用下面命令(下例中用户账号是caojh):

    quota caojh
    `Disk quotas for user caojh(uid 502): Filesystem blocks quota limit grace files quota
    limit grace /dev/hda3 58 200000 400000 41 500 1000`
    以上显示ID号为502的caojh账号,文件个数设置为500~1000个,硬盘空间限制设置为200MB~400MB。一旦磁盘配额要用完时,就需要删除一些垃圾文件或向系统管理员请求追加配额。

    • at

      • 1.作用
        at命令用来在指定时刻执行指定的命令序列。

      • 2.格式
        at [-V] [-q x] [-f file] [-m] time

      • 3.主要参数
        -V:显示标准错误输出。

    -q:许多队列输出。
    -f:从文件中读取作业。
    -m:执行完作业后发送电子邮件到用户。
    time:设定作业执行的时间。time格式有严格的要求,由小时、分钟、日期和时间的偏移量组成,其中日期的格式为MM.DD.YY,MM是分钟,DD是日期,YY是指年份。偏移量的格式为时间+偏移量,单位是minutes、hours和days。

    • 4.应用实例
      at -f data 15:30 +2 days

    上面命令表示让系统在两天后的17:30执行文件data中指明的作业。

    • lp

      • 1.作用
        lp是打印文件的命令,使用权限是所有用户。

      • 2.格式
        lp [-c][-d][-m][-number][-title][-p]

      • 3.主要参数
        -c:先拷贝文件再打印。

    -d:打印队列文件。
    -m:打印结束后发送电子邮件到用户。
    -number:打印份数。
    -title:打印标题。
    -p:设定打印的优先级别,最高为100。

    • 4.应用实例
      (1)使用lp命令打印多个文件

    lp 2 3 4
    request id is 11 (3 file(s))
    其中2、3、4分别是文件名;“request id is 11 (3 file(s)) ”表示这是第11个打印命令,依次打印这三个文件。
    (2)设定打印优先级别
    lp lp -d LaserJet -p 90 /etc/aliases
    通过添加“-p 90”,规定了打印作业的优先级为90。它将在优先级低于90的打印作业之前打印,包括没有设置优先级的作业,缺省优先级是50。

    使用Infinality优化Ubuntu字体的显示

    依次执行:

    sudo add-apt-repository ppa:no1wantdthisname/ppa

    sudo apt-get update

    sudo apt-get upgrade

    sudo apt-get install fontconfig-infinality

    sudo bash /etc/fonts/infinality/infctl.sh setstyle

    推荐的风格是2, Infinality。这样出来的效果还是不完美,不过个人感觉比WIN和Mac的效果都要漂亮。

    ubuntu zip rar 乱码解决办法

    安装Linux版7zip:
    sudo apt-get install p7zip p7zip-full p7zip-rar
    卸载可能安装过的rar相关包(默认是没有安装的):
    sudo apt-get remove rar unrar
    安装p7zip-full
    sudo apt-get install p7zip-full
    然后再把unzip卸载了
    sudo apt-get remove unzip
    再下载更新的p7zip-full包把原来的程序替换掉/usr/lib/p7zip/
    然后执行
    sudo tar jxvf p7z-bin.tar.bz2 -C /usr/lib/p7zip/

    最新文章

    最近回复

    • 测试: 评论测试内容
    • 袅残烟: [嘻嘻]万网域名也降价了
    • yxy: 以后,我会经常来逛的。
    • 袅残烟: LXDE可以搭配xf...
    • Fooleap: 从好几年前用 Lub...

    分类

  • 默认分类 (26)
  • 运维 (53)
  • docker (1)
  • 动漫 (19)
  • 科普知识 (15)
  • 苍白边缘 (17)
  • 资源 (12)
  • Linux (58)
  • Arch Linux (19)
  • 计算机 (18)
  • 编程 (3)
  • Java (4)
  • python (0)
  • php (0)
  • 前端 (1)
  • 公告 (1)
  • 归档




      其它